मैं हाइबरनेट कॉलबैक विधि का उपयोग करने के फायदे समझने में सक्षम नहीं हूं, क्या कोई फायदे या विशिष्ट उपयोग केस है जहां हमें इसके लिए जाना चाहिए।हाइबरनेट कॉलबैक का उपयोग करने के लाभ?
public List findRecentRequests(final int offset, final int length)
{
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session) throws HibernateException
{
Query q = session.createQuery(FIND_RECENT_REQUESTS);
q.setFirstResult(offset);
q.setMaxResults(length);
return q.list();
}
});
return list;
}
यह भी एक और महत्वपूर्ण सवाल यह है कि क्वेरी रिटर्न मूल्यों के बाद हर बार HibernateCallback विधि बंद सत्र करता है? मैंने केस का उपयोग किया है जहां स्टेटस पेज के प्रत्येक रीफ्रेश पर इस फ़ंक्शन को कई बार कॉल किया जा रहा है और इसलिए यह हर बार खुले सत्र और क्वेरी डेटाबेस होगा या फिर यह क्वेरी परिणामों को स्मृति में संग्रहीत करेगा और फिर जब भी मैं इस फ़ंक्शन पर कॉल करता हूं, परिणाम निकाल दिए जाएंगे याद से।
मैंने पढ़ लिया है (Reference):
वसंत HibernateTemplate.execute() डिफ़ॉल्ट रूप से पूरा होने पर किसी भी खुले सत्र बंद कर देता है। कोई सत्र
प्रासंगिक दस्तावेज भाग का कोई भी संदर्भ अत्यधिक सराहना की है - प्रॉक्सी सक्रिय नहीं कर सका: जब आलसी आरंभीकरण के साथ प्रयोग किया आप निम्नलिखित
org.hibernate.LazyInitializationException की तरह एक LazyInitializationException मिल सकता है।
अद्यतन:
मेरे मामले में EJB लेनदेन का उपयोग कर रहा है और यह सेटिंग "समर्थन" करने के लिए और मैं उस मामले के रूप में इस सौदे का समर्थन करने के लिए सेट कर दिया जाता में विश्वास करते हैं, यह वैकल्पिक है और इसलिए हर नया सत्र बनाया जाएगा और हाइबरनेट परिणाम प्राप्त करने के लिए डेटाबेस से पूछताछ करेगा और इसलिए मुझे बाधाएं आ रही हैं, क्या यह सही धारणाएं बनाने के लिए होगी?
आप अपने डेटा एक्सेस लेयर से वापस आने से पहले आलसी संग्रह शुरू करना चाहते हैं जहां सत्र खुला है। या 'OpenSessionInViewFilter' – millimoose
@Inerdial का उपयोग करें: यदि आप एक उदाहरण के साथ अधिक विस्तृत कर सकते हैं तो मैं वास्तव में सराहना करता हूं? – Rachel
हाइबरनेट डॉक्स [प्रारंभिक संग्रह और प्रॉक्सी] के साथ सौदा करते हैं (http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html/performance.html#performance-fetching-initialization) पहले से ही। वसंत ["व्यू फ़िल्टर में ओपन सत्र"] का कार्यान्वयन भी प्रदान करता है (http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/orm/hibernate4/support/OpenSessionInViewFilter .html) हाइबरनेट दस्तावेज़ों द्वारा उल्लिखित। विस्तृत जानकारी के लिए – millimoose