簡體   English   中英

打開和關閉Hibernate會話

[英]Open and close Hibernate session

這就是我如何獲得Hibernate Session並創建查詢。

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

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

HSession是我的Session工廠所在的位置, getSession()方法返回一個新會話

(getSessionFactory().openSession();)

我想知道是否

  • 在調用cr.list(); 會話還活着嗎?
  • 如果活着,獲得此標准或執行查詢方式並不好?
  • 創建會話為

    Session s = HSession.getSession();
    s.createCriteria ...

    是使用會話並使用s.close();關閉它的方法s.close();

是的,會話將一直存在,直到您關閉它。 您可以對會話執行多個操作,但只有close()將關閉它。

在您的情況下,看起來會話由HSession控制。 您需要查看它以查看是否執行了任何事務,如何管理會話等。

我今天讀了這篇文章......它說“第一次調用getCurrentSession()時會打開一個會話,而當事務結束時會關閉會話。” 所以根據這個:如果你有一個交易纏繞它(你應該猜我)並調用transaction.commit()...會話關閉。
在你的情況下它應該仍然是開放的。

如果我錯了,請糾正我......! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM