मैं डेटाबेस स्कीमा के लिए एक हाइबरनेट परत बनाने की कोशिश कर रहा हूं, जिसका मेरे पास अनिवार्य रूप से कोई नियंत्रण नहीं है। सरलीकृत, दो टेबल हैं।हाइबरनेट: एक से कई रिश्ते में कॉलम निर्दिष्ट करना
parent_id
, पूर्णांक, प्राथमिक कुंजी, autoincrementedparent_code
, स्ट्रिंग, अद्वितीय कुंजी, एक ब्लैक बॉक्स द्वारा उत्पन्न कहीं (मान लीजिए कि यह एक UUID है करते हैं:टेबल
parent
दो महत्वपूर्ण स्तंभ हैं विवेक की खातिर)- प्लस डेटा के स्तंभों का एक समूह के लिए
child_parent_id
, पूर्णांक, प्राथमिक कुंजी, autoincrementedchild_parent_code
, माता पिता कीparent_code
मूल्य- में स्ट्रिंग, विदेशी कुंजी की ओर इशारा करते प्लस डेटा के स्तंभों में से एक गुच्छा: 10 टेबल
child
दो महत्वपूर्ण स्तंभ हैं
मैं माता-पिता.getChilds() को कॉल करने और बाल वस्तुओं का संग्रह प्राप्त करने में सक्षम होना चाहता हूं। लेकिन हाइबरनेट मैपिंग फाइलों को स्थापित करना असंभव लगता है। नीचे दिए गए मैपिंग के साथ यह क्या कर रहा है child
तालिका parent_id
मान (parent_code
के बजाय) के साथ खोज रहा है।
Parent.hbm.xml
में:
<set name="childs" inverse="true" lazy="true" table="child" fetch="select">
<key>
<column name="child_parent_code" not-null="true" />
</key>
<one-to-many class="foo.bar.Child" />
</set>
Child.hbm.xml
में:
<many-to-one name="parent" class="foo.bar.Parent" fetch="select">
<column name="child_parent_code" not-null="true" />
</many-to-one>
मैं हाइबरनेट साथ जावा हठ की मेरी नकल के माध्यम से poring एक घंटे खर्च किया है, लेकिन मैं समझ नहीं कैसे कर सकते हैं जो मैं चाहता हूं उसे करने के लिए। क्या यह संभव है?
संपत्ति-रेफरी विशेषता पूरी तरह से काम करती है। धन्यवाद! – Plutor
कोई समस्या नहीं, खुशी हुई इससे मदद मिली। –
@DavidM क्या हाइबरनेट में संपत्ति-रेफ समकक्ष एनोटेशन है? –