से सभी प्रबंधित इकाइयों को प्राप्त करने का कोई तरीका है, मैं एक मूल परीक्षण डेटा उपयोग स्थापित कर रहा हूं और EntityManager हैंडल के सभी डेटा का ट्रैक रखना चाहता हूं। प्रत्येक इकाई के लिए सूचियों का एक गुच्छा होने की बजाय, EntityManager द्वारा प्रबंधित किए जा रहे सबकुछ को पकड़ने का एक तरीका है, एक में झुकाव?क्या एंटिटी मैनेजर
बजाय इस की:
EntityManager em;
List<Entity1> a;
List<Entity2> b;
...
List<Entityn> n;
cleanup() {
for(Entity1 e : a) em.remove(e);
for(Entity2 f : b) em.remove(f);
...
for(Entityn z : n) em.remove(z);
}
मैं कुछ इस तरह चाहते हैं;
EntityManager em;
cleanup() {
List<Object> allEntities = em.getAllManagedEntities(); //<-this doesnt exist
for(Object o : allEntities) em.remove(o);
}
यह सुनिश्चित नहीं है कि यह संभव है, लेकिन मैं बस छवि दूंगा कि प्रबंधक जानता है कि यह क्या प्रबंधित कर रहा है? या, यदि आपके पास आसानी से इकाइयों का एक गुच्छा प्रबंधन करने का कोई विचार है।
के लिए किसी और द्वारा गुज़रने वाले: परिवर्तनीय नाम "className" मुझे थोड़ा सा गुमराह करता है क्योंकि यह वास्तव में jpaEntityName है। वास्तविक वर्ग प्राप्त करने के लिए किसी को GetBindableJavaType का उपयोग करना चाहिए। @ फैसल, सही दिशा में मुझे इंगित करने के लिए धन्यवाद – Ittai
मुझे यकीन नहीं है कि ओपी ने क्या पूछा है। ऐसा लगता है कि डेटाबेस से प्राप्त की जा सकने वाली सभी इकाइयों को मुद्रित किया जा सकता है, लेकिन सभी संस्थाएं जो वर्तमान में * EntityManager द्वारा प्रबंधित नहीं हैं। –
यह सिर्फ सादा गलत है! जैसा कि @ मर्कस ज्यूनियस ब्रूटस पहले से ही इंगित कर रहा है, यह डीबी से सभी ज्ञात इकाइयों की सभी पंक्तियों को लोड करता है। जब कोड समाप्त होता है तो आप वास्तव में सभी भारित इकाइयों पर हाथ प्राप्त कर सकते हैं। लेकिन यह ऐसी संस्थाएं नहीं हैं जहां कोड को निष्पादित करने से पहले प्रबंधित किया गया था। – BetaRide