मेरी समझ से @OneToOne
और @ManyToOne
जेपीए एनोटेशन eager
fetch करते हैं। मैं चाहता हूं कि ये मेरे आवेदन में आलसी लोड हो जाएं, या कम से कम उस पर इशारा करें (जो कि हाइबरनेट को डिफ़ॉल्ट करता है)। मैं एनोटेशन fetch = FetchType.LAZY
जेपीए डिफ़ॉल्ट fetch प्रकार
जैसे जोड़ने के लिए शुरू कर दिया है
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@ManyToOne(optional = false)
के बजाय यह दोनों थकाऊ और त्रुटि की संभावना है। क्या कोई तरीका है कि मैं इसे एप्लिकेशन स्तर पर कर सकता हूं? Persistence.xml में शायद?
आप इसे औचित्य साबित करने के लिए एक-से-एक का उपयोग करते हैं, फिर भी कई से अधिक * एसोसिएशन के अधिक सामान्य प्रकार तक * है। हां, एक-से-एक संगठनों के मामले में उत्सुकता प्राप्त करना संभवतः बेहतर होता है। आलस्य के रूप में आलस्य होना बेहतर है क्योंकि वास्तव में इस तथ्य के साथ और अधिक करना है कि एसोसिएशन को रनटाइम (दोनों हाइबरनेट और जेपीए में) में उत्सुक बनाने के लिए बहुत से परिभाषित तरीके हैं, लेकिन उन्हें स्पष्ट रूप से बनाने के लगभग कोई तरीके नहीं हैं आलसी। –
उस संदर्भ में एक-से-एक और कई से अलग कैसे हैं, कैसे कोई औचित्य साबित करता है कि दूसरा एक औचित्य साबित करने में विफल रहता है? मुझे दृढ़ता से लगता है कि इरहान में उसमें एक मुद्दा है। यदि आपके पास कोई उत्पाद है, तो ग्राहक इसे एक अलग जेपीए कार्यान्वयन के साथ उपयोग करना चाहता है। फिर या तो वे असंगतता के साथ समाप्त हो जाएंगे या उन्हें अन्य कार्यान्वयन के साथ संगत बनाने के लिए मूल कोड को संशोधित करना होगा। फिर भी आप रनटाइम पर आलसी में संबंध बदलने के लिए असंभव कहने में पूरी तरह सही हैं। –
क्योंकि अनुभव कहता है कि एक-से-एक संबंध कई से अधिक बार-बार होते हैं जैसा कि मैंने पहले ही ऊपर बताया है। आप आदर्शवादी हैं; मैं व्यावहारिक हूं। मैं असली दुनिया समाधान –