थोक संचालन में कई संभावित अड़चनें हैं। सबसे अच्छा तरीका इस बात पर निर्भर करता है कि आपका डेटा कैसा दिखता है। हाइबरनेट मैनुअल बैच प्रोसेसिंग पर अनुभाग।
कम से कम, सुनिश्चित करें कि आप निम्नलिखित पैटर्न का उपयोग कर रहे हैं (मैनुअल से कॉपी):
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();
यदि आप एक फ्लैट फ़ाइल को एक बहुत ही जटिल ऑब्जेक्ट ग्राफ़ में मैप कर रहे हैं तो आपको अधिक रचनात्मक होना पड़ सकता है, लेकिन मूल सिद्धांत यह है कि आपको प्रत्येक फ्लश/प्रतिबद्धता के साथ डेटाबेस में डेटा के अच्छे आकार के हिस्सों को धक्का देने और टालने के बीच संतुलन खोजना होगा सत्र स्तर कैश के आकार का विस्फोट।
अंत में, यदि आपको अपने डेटा को सही ढंग से सम्मिलित करने के लिए किसी भी संग्रह या कैस्केडिंग को संभालने के लिए हाइबरनेट की आवश्यकता नहीं है, तो स्टेटलेससेशन ।