java - JPA: uni-directional OneToMany question -
मेरे पास निम्न कक्षाएं हैं:
class A {@OneToOne (cascade = CascadeType सभी) निजी बी बी; } वर्ग सी {@ManyToOne निजी ए ए; } वर्ग बी {@OneToOne निजी ए एक; @ मैमके (नाम = "नाम") @ ओनेटामाइ (कैस्केड = कैस्केड टाइप.एल, ...) @जोइन कॉलम (...) निजी मानचित्र & lt; स्ट्रिंग सी & gt; सीएस; } मुझे बी.ए. == सीए में शामिल होने के लिए बीसीएस पर मैपिंग कैसे निर्दिष्ट करना है?
क्या यह संभव है? या क्या मुझे सी.बी. को संपत्ति सी। ए बदलना है? (मैं इसे इसे रखने के लिए पसंद करता हूं, क्योंकि इकाई बी सिर्फ एक सहायक वर्ग है।) मैंने भी ऐडबैंड करने के लिए बी को बदलने की कोशिश की, लेकिन एम्बेड करने के लिए नक्शा समर्थित नहीं है।
जेपीए के लिए सभी रिश्तों को आईडी द्वारा होना चाहिए (विदेशी कुंजी संदर्भ प्राथमिक कुंजी)। इसलिए, आपको या तो सी से बी के लिए एक @ManyToOne जोड़ना होगा या यह सुनिश्चित करना है कि बी की आईडी ए के लिए विदेशी कुंजी है (बी को ए से एक के लिए @ पर जोड़ें और ए की अन्य आईडी को हटा दें)। अगर बी एक के एक उप-कक्षा थी, वहीं वन-टोन होने के बजाय यह भी काम करेगा।
यदि आप ईक्लिप्स लिंक प्रयोग कर रहे हैं, तो आप रिश्ते के लिए और अधिक जटिल मापदंड परिभाषित कर सकते हैं। आपको एक वर्णनकर्ता कस्टमर और OneToManyMapping API का उपयोग करके OneToMany की विदेशी कुंजी को परिभाषित करने की आवश्यकता होगी।
Comments
Post a Comment