java ee - JPA: When parent entity got removed, child entity still remain -
ग्राहक इकाई (जनक इकाई)
@ एंटीटी सार्वजनिक वर्ग ग्राहक {@Id @ generatedValue (रणनीति = जनरेशन टाईप.ऑटो) निजी लांग आईडी; निजी स्ट्रिंग का नाम; @OneToMany (मैप किए गए = "ग्राहक", कैसकेड = कैस्केड टाइप। एएल) निजी सूची & lt; सुविधा & gt; सुविधाओं; // नाव और सुविधाओं के लिए सेटर और गेटर्स सार्वजनिक शून्य addFacility (सुविधा सुविधा) {अगर (this.facilities == नल) {इस। क्षमताओं = नए ArrayList & lt; सुविधा & gt; (); } This.facilities.add (सुविधा); facility.setCustomer (this); }}
सुविधा इकाई (बाल इकाई)
@ एंटीटी सार्वजनिक वर्ग की सुविधा {@Id @ generatedValue (strategy = GenerationType.AUTO) निजी लांग आईडी; @ManyToOne @JoinColumn (नाम = "CUSTOMER_FK") निजी ग्राहक ग्राहक; निजी स्ट्रिंग का नाम; // सेटर और गेटर, बराबर और हैशोड ...}
में ग्राहक
इकाई, मैं CascadeType.ALL
का उपयोग करता हूं, हालांकि मैं एक ग्राहक को निकालता हूं, संबंधित सुविधाएं अभी भी वहां हैं मैं ग्राहक
द्वारा
क्वेरी क्वेरी हटाता है = em.createNamedQuery ("Customer.delete"); Query.setParameter ("आईडी", ग्राहक आईडी); query.executeUpdate ();
जहां
@NamedQuery (name = "Customer.delete", क्वेरी = "ग्राहक सी से हटा दें c.id =: id") < / JPA विनिर्देश:
4.10 बल्क अपडेट और हटाएं ऑपरेशंस
...
एक हटाए गए ऑपरेशन केवल निर्दिष्ट वर्ग की संस्थाओं और इसके उपवर्गों पर लागू होता है यह संबंधित संस्थाओं को झरना नहीं करता है।
...
यदि आप कैस्केडिंग से लाभ चाहते हैं, तो इकाई को लोड करें और फिर EntityManager # remove को कॉल करें ( ऑब्जेक्ट)
उस पर।
Comments
Post a Comment