2011-01-20 12 views
6

मेरे पास एक वर्ग है कि मैं एक हाइबरनेट मैपिंग बना रहा हूं जिसमें एक विरासत वस्तु है जिसमें मैं संशोधित नहीं कर सकता, इसलिए इसमें आवश्यक आईडी फ़ील्ड को हाइबरनेट के साथ अच्छी तरह से खेलने के लिए नहीं है। मैं विरासत वस्तु को अपनी नई कक्षा के एक @ एम्बेडेड फ़ील्ड के रूप में एनोटेट करना चाहता हूं और विरासत वस्तु के लिए एक hbm.xml फ़ाइल लिखना चाहता हूं और ध्यान दें कि यह एम्बेड करने योग्य है। क्या इसे करने का कोई तरीका है? मैंने जो वस्तुओं को देखा है उन्हें एम्बेड करने के लिए एकमात्र दस्तावेज एक्सएमएल का उपयोग करने के बजाय एनोटेटिंग ऑब्जेक्ट्स को संदर्भित करता है।XML मैपिंग फ़ाइल के लिए समेकित @embeddable एनोटेशन Hibernate?

मुझे एहसास है कि मैं विरासत वस्तु का विस्तार कर सकता हूं और इसे उचित रूप से एनोटेट कर सकता हूं, लेकिन ये मामला अक्सर हो सकता है इसलिए यदि संभव हो तो मैं इससे बचना चाहूंगा।

उत्तर

10

@Embedded का एक्सएमएल समकक्ष <component> है, 5.1.5. Embedded objects (aka components) देखें।

<class name = "NewClass"> 
    ... 
    <component name = "legacyObject"> 
     ... properties of the legacy class ... 
    </component> 
</class> 
:

हालांकि, यह @Embeddable/@Embedded जोड़ी के रूप में एक ही तरह से काम नहीं करता है, तो आप युक्त वर्ग, कुछ इस तरह की .hbm.xml में घटक वर्ग के सभी गुण वर्णन करने के लिए की जरूरत है

संबंधित मुद्दे