2009-08-06 27 views
6

के अलावा किसी अन्य चीज़ का उपयोग करके कई लोगों को हाइबरनेट करें मेरे पास A है जिसमें B का सेट है। हालांकि, ये दो ऑब्जेक्ट उन फ़ील्ड से जुड़े हुए हैं जो प्राथमिक कुंजी नहीं हैं।प्राथमिक कुंजी

B के लिए, मैं <key column> का उपयोग कर सकता हूं, लेकिन मैं यह कैसे निर्दिष्ट करूं कि शामिल होना A में होना चाहिए। secondary_column? A नहीं। table_primary_key_id?

<class table="a"> 
    <id column="table_primary_key_id"> 
    </id> 
    <property column="secondary_column" /> 

    <set table="B" lazy="false" > 
     <key column="B_not_primary" /> 
     <one-to-many class="BClass" /> 
    </set> 
</class>  
+1

साथ हल मुझे नहीं लगता कि हाइबरनेट आप आप क्या चाहते करने देंगे है। – skaffman

+0

हाइबरनेट वास्तव में आपको ऐसा करने नहीं देना चाहिए। खराब डेटाबेस डिजाइन की यह reeks। आप यहां क्या हल करने की कोशिश कर रहे हैं? –

+1

मैं खराब डेटाबेस डिज़ाइन को हल करने की कोशिश कर रहा हूं ... यह 10+ साल की विरासत डेटाबेस है :) मुझे इससे नफरत है, यह मुझे परेशान करता है। उम्मीद है कि मैं प्रबंधन को कुछ और ओओ दोस्ताना में बदलने के लिए मना दूंगा। –

उत्तर

4

<set name="someSet" table="B" lazy="false"> 
    <key column="B_not_primary" property-ref="secondary_column" /> 
    <one-to-many class="BClass" /> 
</set> 
संबंधित मुद्दे