【问题标题】:Does committing transaction close session?提交事务是否关闭会话?
【发布时间】:2015-08-04 07:25:14
【问题描述】:

我是休眠新手。

session.getTransaction().commit(), 是否关闭会话?因为在 api 文档中没有提到它关闭会话。

在我的代码中

session.getTransaction().commit();
session.close();

但我得到以下异常

org.hibernate.SessionException: 会话已经关闭

如果我删除 session.close(),则不会出现此异常。

【问题讨论】:

    标签: hibernate session transactions


    【解决方案1】:

    你可以找到更多关于它的信息here。基本上,这取决于您如何获得会话以及在session.getTransaction().commit(); 中执行的操作(例如,如果您使用的某些框架注册了事务生命周期侦听器,它们可能会在此处关闭会话)。

    要检查它何时真正关闭,可以尝试在AbstractSessionImpl.setClosed 方法中设置断点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多