मेरे पास एक ऐसा एप्लिकेशन है जो हाइबरनेट के माध्यम से ऑब्जेक्ट लोड करता है और फिर उन वस्तुओं को अलग-अलग ऑब्जेक्ट्स के रूप में अलग-अलग ऑब्जेक्ट्स में पास करता है। उन वस्तुओं में किए गए किसी भी बदलाव को हाइबरनेट स्तरीय पर वापस भेज दिया जाता है जहां मैं उन वस्तुओं पर saveOrUpdate()
पर कॉल करता हूं।क्या Hibernate saveOrUpdate विधि बच्चों को हटा देगा?
saveOrUpdate()
में भेजे गए ऑब्जेक्ट्स में संग्रह में निहित एक-से-कई रिलेशनशिप बाल ऑब्जेक्ट्स को हाइबरनेट करेगा यदि मैं saveOrUpdate()
पर कॉल करने से पहले संग्रह से बच्चे ऑब्जेक्ट को हटा देता हूं?
यदि नहीं, तो यह आमतौर पर पृथक वस्तुओं का उपयोग करने वाले हाइबरनेट एप्लिकेशन में कैसे पूरा किया जाएगा?
यह समझ में आता है। हालांकि, जब मैं संग्रह पर CascadeType.ALL, orphanRemoval = सत्य सेट करता हूं तो बच्चे ऑब्जेक्ट अभी भी हटा नहीं जाता है। क्या यह इस तथ्य के कारण हो सकता है कि मैं OneToMany एनोटेशन के साथ संयोजन में जॉइन कॉलम एनोटेशन का उपयोग कर रहा हूं? – Tom
@ टॉम: शायद नहीं, नहीं, '@ JoinColumn' का उपयोग डिफ़ॉल्ट रूप से कॉलम नाम को ओवरराइड करने के लिए किया जाता है। ऐसा लगता है कि हाइबरनेट ऐसा नहीं लगता कि यह अनाथ है। क्या आप सुनिश्चित हैं कि किसी अन्य इकाई के पास उस बच्चे का संदर्भ नहीं है? – skaffman
यह निश्चित रूप से किसी अन्य इकाई से संदर्भित नहीं है। अंतर्निहित डीबी रिश्ते वास्तव में एक बहुत से लोगों के लिए है, हालांकि, मैं मॉडल को सरल बनाने के लिए JoinColumn के साथ OneToMany का उपयोग कर रहा हूं। शायद यह फेंक रहा है? अन्यथा मैंने यह भी ध्यान दिया कि बच्चे की कुछ बच्चों की संस्थाओं में बहुत से संबंध हैं जिनमें अनाथ रिमूवल विशेषता सेट नहीं हो सकती है। शायद यह किसी भी तरह माता-पिता को हटाने से रोक रहा है। – Tom