会话关闭后如何重新打开hibernate会话?

时间:2013-03-01 19:48:39

标签: java hibernate

是否有任何会话/休眠功能可以重新连接/重新打开

日志:严重:连接关闭后不允许任何操作。

3 个答案:

答案 0 :(得分:3)

没有。您应该创建/打开一个新的Session

答案 1 :(得分:1)

以下是如何确保会话始终有效的代码示例。第2行必须重新分配会话,因为openSession返回一个新会话。仅仅session.getSessionFactory().openSession()还不够。

if (!session.isOpen()) {
        session = session.getSessionFactory().openSession();
        session.beginTransaction();
}
// operate your session 
Criteria criteria = session.createCriteria(clazz);

答案 2 :(得分:0)

Hibernate Docs about Seesion

lifecycle的{​​{1}}受Session的开头和结尾限制。 (长事务可能跨越多个数据库事务。)

您的logical transactiontransaction committed无法使用。你必须创建一个新的。