संभव डुप्लिकेट:
Hibernate unidirectional one to many association - why is a join table better?विदेशी कुंजी पर यूनिडायरेक्शनल एक से कई संगठनों से बचने की सिफारिश क्यों की जाती है?
हाइबरनेट ऑनलाइन प्रलेखन में, खंड 7.2.3 एक-से-कई के तहत, यह उल्लेख किया गया है, कि:
यूनिडायरेक्शनल एक एक विदेशी कुंजी पर कई एसोसिएशन एक असामान्य मामला है, और इसकी अनुशंसा नहीं की जाती है। आपको को इसके बजाय एसोसिएशन के लिए एक जॉइन टेबल का उपयोग करना चाहिए।
मुझे जानना है क्यों? मेरे दिमाग में आने वाली एकमात्र चीज है, यह कैस्केड डिलीट के दौरान समस्याएं पैदा कर सकती है। उदाहरण के लिए, व्यक्ति विदेशी कुंजी पर कई रिश्तों को संबोधित करता है, और पता व्यक्ति से पहले हटा दिया जाएगा।
क्या कोई सिफारिश के पीछे तर्कसंगत समझा सकता है?
एक विदेशी कुंजी पर एक यूनिडायरेक्शनल एक-से-कई संघ एक असामान्य है: मैं प्रति यहां चिपकाया वास्तविक सामग्री है 7.2.3. One-to-many
:
यहाँ संदर्भ दस्तावेज़ सामग्री के लिए लिंक है मामला, और अनुशंसित नहीं है।
<class name="Person"> <id name="id" column="personId"> <generator class="native"/> </id> <set name="addresses"> <key column="personId" not-null="true"/> <one-to-many class="Address"/> </set> </class> <class name="Address"> <id name="id" column="addressId"> <generator class="native"/> </id> </class>
create table Person (personId bigint not null primary key) create table Address (addressId bigint not null primary key, personId bigint not null)
आप के बजाय संघ के इस प्रकार के लिए एक मेज में शामिल होने का उपयोग करना चाहिए।
देखें http://stackoverflow.com/questions/1307203/hibernate-unidirectional-one-to-many-association-why-is-a-join-table-better –