मुझे यकीन नहीं है कि मैं इस अजीब आरेख को समझता हूं ... क्षेत्र भाषा में क्षेत्र की ओर इशारा करते हुए कुछ प्रकार की विदेशी कुंजी है। मैं इसे लेता हूं? यदि क्षेत्र में केवल एक कॉलम है (जैसा कि 'आरेख' पर दिखाया गया है), तो आप केवल 'क्षेत्रभाषा' को मानचित्रित कर सकते हैं और आपके पास केवल एक इकाई होगी जैसा आप चाहते थे --- कोई जानकारी खो गई नहीं;)।
लेकिन गंभीरता से, आप इसे कैसे मैप करना चाहते हैं? इस तरह
class Region {
//.. the missing fields not shown in diagram
List<String> languages; // take only language to avoid creating separate entity for region language
}
या कुछ और: आप कुछ इस तरह करना चाहते हैं
class RegionInnerJoinRegionLanguage {
// all fields from Region
// all fields from RegionLanguage
}
किसी भी मामले आप यह नहीं कहा कैसे टेबल के बाकी अपने i18n तालिकाओं के साथ शामिल हो गए हैं में। आपके विवरण से, मैं अनुमान लगा रहा हूं कि सभी तालिकाओं में क्षेत्र भाषा के लिए fk है। मुझे यकीन नहीं है कि चीजों की भव्य योजना में क्षेत्र तालिका का क्या उपयोग किया जाता है। मुझे लगता है कि यह सिर्फ भाषाओं के समूह के लिए है ... मैं इस मॉडल 'स्विट्ज़रलैंड' (एक 'क्षेत्र' 4 भाषाओं) की कल्पना करता हूं ... लेकिन आप कई क्षेत्रों में बोली जाने वाली भाषाओं के साथ क्या करेंगे? क्या आपके पास कई फ्रेंच, अंग्रेजी इत्यादि भाषाएं हैं (प्रत्येक क्षेत्र के लिए एक) और उनमें से प्रत्येक के लिए सभी डेटा गुणा हो गया है ??
मुझे पता है कि आप इसके लिए नहीं पूछते हैं ... मुझे लगता है कि आपने इस प्रश्न के लिए अपनी डेटा संरचना को अधिक बढ़ाया है ... इतना है कि यह अनुमान लगाना मुश्किल है कि आप वास्तव में क्या हासिल करना चाहते हैं।
किसी भी मामले में, आप तार दृष्टिकोण की सूची उपयोग करना चाहते हैं, तो आप इस कोशिश कर सकते हैं:
@ElementCollection
@CollectionTable(name="RegionLanguage",
[email protected](name="regionID") // or whatever... it's not on your diagram.
)
@Column(name="langage")
private List<String> langages;
मैं अभी भी समझ में नहीं आता क्यों आप एक ही इकाई में दोनों तालिकाओं रखना चाहते हैं .. यदि यह 'केवल पढ़ने के लिए' डेटा है, तो आप एक दृश्य बनाने और इसे मैप करने का प्रयास कर सकते हैं --- हमेशा एक 'रास्ता बाहर';)। लेकिन यह (वास्तव में, दोनों) जटिलता से थोड़ा अधिक जटिलता है, यह मेरे दिमाग में --- यह आपको भविष्य में काटने जा रहा है। मेरी सलाह है कि 'सरल वन टॉनी मैपिंग' के साथ जाना है।
क्या आपको इस समस्या का समाधान मिला है? और यदि हां, तो क्या आप इसे साझा करना चाहते हैं (एक उत्तर के रूप में)? हमें एक ही समस्या का सामना करना पड़ रहा है, अभी तक कोई अच्छा समाधान नहीं मिला है (अधिकतर परिणाम एन + 1 प्रश्नों में, जिन्हें हम निश्चित रूप से नहीं चाहते हैं)। – wimvds
आप किस जेपीए प्रदाता का उपयोग कर रहे हैं? – siebz0r
मुझे पूरी तरह से समझ में नहीं आता है कि क्षेत्र और क्षेत्र भाषा के बीच एक सरल @OneToMany सहयोग क्यों आपके लिए काम नहीं करता है? –