क्योंकि प्रत्येक इकाई को स्मृति से डेटाबेस तक जारी रखने के लिए फ्लश() को कॉल करना। इसलिए यदि मैं बहुत अधिक अनावश्यक फ्लश() का उपयोग करता हूं, तो प्रदर्शन के लिए एक अच्छा विकल्प नहीं है, इसलिए इसमें अधिक समय लग सकता है। यहां एक परिदृश्य है जो मुझे नहीं पता कि फ्लश() को कब कॉल करना है?क्या इस स्थिति में फ्लश() (जेपीए इंटरफ़ेस) को कॉल करना आवश्यक है?
//Order and Item have Bidirectional Relationships
Order ord = New ord("my first order");
Item item = New Item("tv",10);
//...process item and ord object
em.persist(ord);//em is an instance of EntityManager
em.flush();// No.1 flush()
item.setOrder(ord);
em.persist(item);
Set<Item> items= new HashSet<Item>();
items.add(item);
ord.setItems(items);
em.flush();// No.2 flush()
मेरा प्रश्न है: नंबर 1 फ्लश के कॉलिंग या से बचने के नहीं किया जा सकता है?
चीजें मैं चिंतित है: आदेश item.setOrder (ord) करने के लिए, हम ord का एक डेटाबेस आईडी की जरूरत है। और केवल em.persist (ord) डेटाबेस आईडी उत्पन्न नहीं कर सकता है, इसलिए मुझे em.flush()item.setOrder (ord) से पहले कॉल करना होगा। तो आपकी राय क्या है?
अग्रिम धन्यवाद।
धन्यवाद सलंदूर! हां, मुझे लगता है कि मैं क्षणिक स्थिति में वस्तुओं का कन्स्ट्रक्शन कर सकता हूं और माता-पिता को जारी रख सकता हूं (यदि मैपिंग फ़ाइल में, बच्चों के संग्रह को कैस्केड सेट किया जाता है)। अंत में मैं फ्लश() कर सकता था। –
क्या आपने कहा फ्लश() निरंतर नहीं है? –