2011-11-17 13 views
6

इस प्रकार मुझे हाइबरनेट सत्र मिलता है और क्वेरी बनाते हैं।हाइबरनेट सत्र खोलें और बंद करें

HSession.getSession().createQuery("query here").executeUpdate(); 

और

Critaria cr=HSession.getSession().createCritaria(..).. ; 

HSession है जहाँ मेरे सत्र कारखाना स्थित है और getSession() विधि एक नया सत्र

(getSessionFactory().openSession();) 

मैं जानना चाहता हूँ कि क्या

  • कॉल करने के बाद चाहते हैं रिटर्न cr.list(); क्या सत्र अभी भी जीवित है?
  • यदि जीवित है, तो यह मानदंड प्राप्त करना या क्वेरी तरीका निष्पादित करना अच्छा नहीं है? और
  • सत्र एस = HSession.getSession() के रूप में एक सत्र बनाना;
    s.createCriteria ...

    क्या सत्र का उपयोग करने और s.close(); का उपयोग करके इसे बंद करने का तरीका है?

उत्तर

8

हां, जब तक आप इसे बंद नहीं करेंगे तब तक सत्र जीवित रहेगा। आप सत्र के विरुद्ध कई संचालन कर सकते हैं, लेकिन केवल close() इसे बंद कर देगा।

आपके मामले में, ऐसा लगता है कि सत्र HSession द्वारा नियंत्रित किया जाता है। आपको यह देखने के लिए देखना होगा कि क्या कोई लेनदेन किया गया है, सत्र कैसे प्रबंधित किए जाते हैं, आदि

+0

आपकी जानकारी के लिए धन्यवाद –

5

मैं आज के बारे में पढ़ा ... यह कहा कि "जब getCurrentSession() पहली बार के लिए कहा जाता है एक सत्र खोला और बंद कर दिया है जब लेनदेन समाप्त होता है।" तो इसके अनुसार: यदि आपके पास इसके चारों ओर एक लेनदेन लपेटा गया है (और आपको मुझे लगता है) और loan.com.com() कॉल करें ... सत्र बंद है।
आपके मामले में यह अभी भी खुला होना चाहिए।

अगर मैं इसके साथ गलत हूं तो कृपया मुझे सही करें ...! :)

संबंधित मुद्दे