JPA :: orphanRemoval and Lazy Collections -


कहें कि मेरे पास OneToMany के < FetchType EAGER और orphanRemoval से सत्य पर सेट करें बीएस जब मैं एक ऑब्जेक्ट पर अलग किया गया EntityManager # merge को कॉल करता हूं और इसके संग्रह से कुछ बी तत्व हटा दिए गए (जबकि अलग), संबंधित पंक्तियों (जिनकी संस्थाएं अब संग्रह से गायब हो रही हैं) को डेटाबेस से हटा दिया गया है (जेपीए / हाइबरनेट में)।

LAZY संग्रह के मामले में यह कैसे ठीक होगा? जब EntityManager को संशोधित ऑब्जेक्ट में विलय करने के लिए कहा जाता है, तो यह उन बी संस्थाओं के बीच के अंतर को कैसे बता सकता है, जिन्हें स्पष्ट रूप से संग्रह बनाम बी संस्थाओं से हटा दिया गया था, जिन्हें LAZY फ़ेच प्रकार?

जेपीए कार्यान्वयन को संग्रह का एक ध्वज रखना चाहिए शुरूआती या अभी भी आलसी राज्य में थे।

इसलिए यदि आप पहले से अलग एंटिटी को मर्ज करते हैं, तो मर्ज ऑपरेशन संग्रह का निरीक्षण करेगा और यदि केवल इसे आरम्भिक किया गया है तो यह घटित संस्था के विरुद्ध परिवर्तनों को खोजने के लिए सामग्री को एन्यूमरेट करेगा डेटाबेस से।

हालांकि, यदि आप एक नया इंस्टेंस इन्स्तांत करते हैं और उस पर मर्ज करने के लिए पास करते हैं, तो संग्रह को आरम्भिक रूप में माना जाएगा और यदि संग्रह खाली है तो जेपीए सभी संग्रह आइटम को निकाल देगा। < / P>

कृपया बंद करो और नया जेपीए कार्यान्वयन, बाटू जेपीए - जो कि 15 गुना तेजी से बाजार में मौजूदा जेपीए लागूकरण की कोशिश करें।

Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -