Looking for jpa Answers? Try Ask4KnowledgeBase
Looking for jpa Keywords? Try Ask4Keywords

jpaकई से कई मानचित्रण


परिचय

एक ManyToMany मानचित्रण उन संस्थाओं के बीच एक संबंध का वर्णन करता है जहां दोनों एक दूसरे के एक से अधिक उदाहरण से संबंधित हो सकते हैं और @ManyToMany एनोटेशन द्वारा परिभाषित किया गया है।

@OneToMany विपरीत, जहां इकाई की तालिका में एक विदेशी कुंजी कॉलम का उपयोग किया जा सकता है, ManyToMany को एक ManyToMany तालिका की आवश्यकता होती है, जो संस्थाओं को एक-दूसरे को मैप करती है।

पैरामीटर

टिप्पणी उद्देश्य
@TableGenerator एक प्राथमिक कुंजी जनरेटर को परिभाषित करता है जिसे GeneratedValue एनोटेशन के लिए एक जनरेटर तत्व निर्दिष्ट होने पर नाम से संदर्भित किया जा सकता है
@GeneratedValue प्राथमिक कुंजी के मूल्यों के लिए पीढ़ी की रणनीतियों के विनिर्देश के लिए प्रदान करता है। यह एक प्राथमिक कुंजी संपत्ति या एक इकाई के क्षेत्र या आईडी एनोटेशन के साथ संयोजन में सुपरक्लास पर लागू किया जा सकता है।
@ManyToMany कर्मचारी और परियोजना संस्थाओं के बीच संबंध निर्दिष्ट करता है जैसे कि कई कर्मचारी कई परियोजनाओं पर काम कर सकते हैं।
mappedBy="projects" कर्मचारी और परियोजना के बीच एक द्विदिश संबंध को परिभाषित करता है
@JoinColumn उस कॉलम का नाम निर्दिष्ट करता है, जो उस संस्था के स्वामी के रूप में मानी जाने वाली इकाई को संदर्भित करेगा
@JoinTable डेटाबेस में तालिका निर्दिष्ट करता है जो विदेशी कुंजियों का उपयोग करके संबंधों को प्रोजेक्ट करने के लिए कर्मचारी को रखेगा

टिप्पणियों

  • @TableGenerator और @GeneratedValue का उपयोग जेपा टेबल जनरेटर का उपयोग करके स्वचालित आईडी निर्माण के लिए किया जाता है।
  • @ManyToMany एनोटेशन कर्मचारी और प्रोजेक्ट संस्थाओं के बीच संबंध को निर्दिष्ट करता है।
  • @JoinTable तालिका का उपयोग करने के लिए तालिका के नाम को निर्दिष्ट करता है क्योंकि कर्मचारी और परियोजना के बीच कई मैपिंग में नाम = "कर्मचारी_प्रोजेक्ट" का उपयोग करते हुए। ऐसा इसलिए किया जाता है क्योंकि कई मैपिंग के लिए एक jpa के स्वामित्व को निर्धारित करने का कोई तरीका नहीं है क्योंकि डेटाबेस टेबल में अन्य तालिका के संदर्भ में विदेशी कुंजी नहीं है।
  • @JoinColumn उस कॉलम का नाम निर्दिष्ट करता है, जो इकाई के स्वामी के रूप में मानी जाने वाली इकाई को संदर्भित करेगा, जबकि @inverseJoinColumn, संबंध के व्युत्क्रम का नाम निर्दिष्ट करता है। (आप मालिक के रूप में माने जाने वाले किसी भी पक्ष का चयन कर सकते हैं। बस यह सुनिश्चित कर लें कि रिश्ते में वे पक्ष हैं)। हमारे मामले में हमने कर्मचारी को मालिक के रूप में चुना है, इसलिए @JoinColumn, टेबल कर्मचारी_प्रोजेक्ट में शामिल होने के लिए idemployee कॉलम को संदर्भित करता है और @InverseJoinColumn, idproject को संदर्भित करता है, जो कई मैपिंग के लिए कई jpa के विपरीत होता है।
  • प्रोजेक्ट इकाई में @ManyToMany एनोटेशन उलटा संबंध दिखाता है इसलिए यह कर्मचारी इकाई में फ़ील्ड को संदर्भित करने के लिए मैप किए गए प्रोजेक्ट = का उपयोग करता है।

पूरा उदाहरण यहाँ पर दिया जा सकता है

कई से कई मानचित्रण संबंधित उदाहरण