"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > 'मैप्डबाय' जेपीए और हाइबरनेट में द्विदिश संबंधों को कैसे सुविधाजनक बनाता है?

'मैप्डबाय' जेपीए और हाइबरनेट में द्विदिश संबंधों को कैसे सुविधाजनक बनाता है?

2024-11-17 को प्रकाशित
ब्राउज़ करें:389

How Does `MappedBy` Facilitate Bidirectional Relationships in JPA and Hibernate?

जेपीए और हाइबरनेट में मैप्डबाय को समझना

जेपीए और हाइबरनेट जैसे ऑब्जेक्ट-रिलेशनल मैपिंग (ओआरएम) फ्रेमवर्क में, मैप्डबाय एक उपयोगी एनोटेशन है इकाई वर्गों के बीच द्विदिशात्मक संबंध स्थापित करना। इस एनोटेशन का उपयोग एक-से-अनेक और अनेक-से-एक संबंधों के संदर्भ में किया जाता है।

अनुशंसित उपयोग

MappedBy का अनुशंसित उपयोग इस प्रकार है:

  • एक-से-अनेक संबंध: एक-से-अनेक संबंध में, रिश्ते के "कई" पक्ष (संग्रह वाला पक्ष) में मैप्डबाय एनोटेशन होना चाहिए। यह एनोटेशन संबंध के "एक" पक्ष में फ़ील्ड का नाम निर्दिष्ट करता है जो विदेशी कुंजी बाधा रखता है।
  • अनेक-से-एक संबंध: अनेक-से-एक में संबंध, संबंध के "एक" पक्ष (एकल संदर्भित वस्तु वाला पक्ष) में मैप्डबाय एनोटेशन होना चाहिए। यह एनोटेशन रिश्ते के "कई" पक्ष में फ़ील्ड का नाम निर्दिष्ट करता है जो विदेशी कुंजी बाधा रखता है।

MappedBy का उद्देश्य

MappedBy कार्य करता है कई उद्देश्य:

  • द्वि-दिशात्मक ट्रैवर्सल: द्विदिश संबंधों में, मैप्डबी आपको दोनों तालिकाओं में स्पष्ट विदेशी कुंजी परिभाषाओं की आवश्यकता के बिना दोनों दिशाओं में संबंधों को पार करने की अनुमति देता है।
  • अनुकूलन: रिश्ते के स्वामित्व को निर्दिष्ट करके, मैप्डबीवाई कर सकता है अनावश्यक जॉइन टेबल या विदेशी कुंजी से बचकर डेटाबेस प्रदर्शन को अनुकूलित करें बाधाएं।

उदाहरण

आपके दिए गए उदाहरण में, जिस एयरलाइन के पास एक ही एयरलाइन से संबंधित कई एयरलाइनफ्लाइट और एयरलाइनफ्लाइट हैं, मैप्डबाय का उपयोग एयरलाइनफ्लाइट क्लास में निम्नानुसार किया जाना चाहिए :

@Entity
@Table(name="AirlineFlight")
public class AirlineFlight {
    // ... other attributes ...

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="IDAIRLINE", nullable=false)
    @MapsId
    private Airline airline;
    // ... other attributes ...
}

इस उदाहरण में, @MapsId एनोटेशन इंगित करता है कि AirlineFlight में IDAIRLINE फ़ील्ड का उपयोग एयरलाइन इकाई के लिए विदेशी कुंजी बाधा के रूप में किया जाता है। यहां मैप्डबाय का उपयोग करके, आप दोनों तालिकाओं में विदेशी कुंजी बाधाओं की आवश्यकता के बिना एयरलाइन और एयरलाइनफ्लाइट के बीच एक द्विदिश संबंध स्थापित कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3