में एक-दूसरे रिश्ते के स्वामित्व वाले पक्ष के महत्व को समझने की कोशिश कर रहा है, भले ही मेरा प्रश्न विशेष रूप से प्ले फ्रेमवर्क में चित्र संबंधों में चित्रित किया गया है, जो हाइबरनेट का उपयोग करता है, मुझे यकीन है कि यह एक सामान्य है अवधारणा।ओआरएम
जब हमारे पास एक से अधिक रिश्ते हैं, तो हमें हमेशा स्वामित्व पक्ष निर्दिष्ट करने के लिए कहा जाता है।
तो, उदाहरण के लिए यदि हमारे पास व्यक्ति और फोन नंबर के बीच एक से अधिक संबंध थे, तो हम इस तरह के कोड लिखेंगे।
@Entity
class Person {
@OneToMany(mappedBy="person")
public Set<PhoneNumber> phoneNumbers;
}
@Entity
class PhoneNumber {
@ManyToOne
public Person person;
}
उपर्युक्त कोड में, स्वामित्व वाली इकाई फ़ोन नंबर है। किसी भी पक्ष के मालिकों और मालिकों की स्वामित्व वाली संस्था क्या है?
मुझे एहसास है कि स्वामित्व वाली इकाई PhoneNUmber है, तो रिश्ते का प्रतिनिधित्व कई टन है, जिसके परिणामस्वरूप तालिका में शामिल नहीं होगा, जबकि जब स्वामित्व पक्ष व्यक्ति होता है, तो दर्शाया गया रिश्ता वनटॉनी होगा, इस मामले में एक रिश्ते की मेज होगी बनाया जाना
क्या यह स्वयं के पक्ष को निर्धारित करने का मुख्य कारण है, या अन्य कारण भी हैं?
अद्यतन: मैं सिर्फ महसूस किया कि this thread जवाब का हिस्सा प्रदान करता है, लेकिन मैं वहाँ अन्य बिंदुओं के रूप में अच्छी तरह से हो सकता है उम्मीद कर रहा हूँ।
मैं जोर से सोचने की कोशिश कर रहा हूं। मान लें कि दोनों मामलों में, हम उत्सुकता प्राप्त करते हैं। पहले मामले के लिए, जहां फोन नम्बर स्वामित्व वाली इकाई है, हम सभी व्यक्तियों को प्राप्त करने के लिए पहली क्वेरी को आग लगा देंगे, और फिर उस व्यक्ति के लिए सभी फोन नंबर प्राप्त करने के लिए प्रत्येक व्यक्ति के लिए अलग-अलग प्रश्न पूछेंगे। हालांकि, अगर हमारे पास व्यक्ति के स्वामित्व वाले व्यक्ति थे, तो हमें शामिल होने के साथ केवल एक प्रश्न की आवश्यकता होती है। मुझे खेद है कि यह एक मूर्ख सवाल है, लेकिन फोन नंबर में व्यक्ति एफके होने के साथ संभव नहीं है? – Parag
हां, फ़ोन आईडी में व्यक्ति आईडी एफके के साथ भी शामिल होना चाहिए।यहां मैं (मान लीजिए) कि एक सामान्यीकृत लुकअप तेज़ी से होगा लेकिन आपको सुनिश्चित करने के लिए अपनी व्याख्या योजना को देखना होगा। एक रिलेशनशिप टेबल का उपयोग करने के लिए एक अन्य कारण (कम से कम सैद्धांतिक) फोन नंबरों को साझा करने की अनुमति देना होगा, जैसे बदलाव में दो लोगों द्वारा उपयोग किए जाने वाले फ़ोन नंबर की तरह। स्पष्ट रूप से, इस तरह के विचारों के लिए एक ओआरएम परत कैसे काम करना चाहिए, क्योंकि कोई भी – rjha94
दिमाग में ओआरएम परत के साथ स्कीमा को डिज़ाइन नहीं करता है, इस धागे में मेरे उत्तर को 'मैप किए गए' और 'स्वामित्व वाले पक्ष' के कारणों के कारण भी देखें, क्या होता है अगर हम एक स्वामित्व वाली पक्ष को परिभाषित नहीं करते हैं, तो GOTCHA - http://stackoverflow.com/questions/2749689/what-is-the-owning-side-in-an-orm-mapping/21068644#21068644 –