这就是我获取休眠会话并创建查询的方式。

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


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

HSession是我的会话工厂所在的位置,getSession()方法返回一个新的会话
(getSessionFactory().openSession();)

我想知道是否
  • 调用cr.list();之后,会话是否仍然存在?
  • 如果还​​活着,那么获取此条件或执行查询方式不好吗?和
  • 创建会话为

    会话s = HSession.getSession();
    s.createCriteria ...

    是使用会话并使用s.close();关闭会话的方法吗?
  • 最佳答案

    是的,会话将一直存在,直到您关闭它为止。您可以对一个会话执行多项操作,但是只有close()可以将其关闭。

    在您的情况下,会话似乎受任何HSession控制。您需要查看一下以查看是否执行了任何事务,如何管理会话等。

    07-25 22:26