Hibernate Session已关闭

Ana*_*man 16 session hibernate

当我调用方法session.begin事务时,如下所示:

//session factory is instantiated via a bean
Session session = this.getSessionFactory().getCurrentSession();
session.beginTransaction();
Run Code Online (Sandbox Code Playgroud)

然后我收到以下异常消息

6:13:52,217 ERROR [STDERR] org.hibernate.SessionException: Session is closed!
at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1319)
Run Code Online (Sandbox Code Playgroud)

可能是导致此错误的原因是什么?

Pét*_*rök 27

更新:我猜这次调用getCurrentSession()并不保证会话实际上是开放的.这是你第一次使用

Session session = this.getSessionFactory().openSession();
session.beginTransaction();
Run Code Online (Sandbox Code Playgroud)

代替.此建议实际上与您找到的页面一致.

早些时候:

根据目前可用的信息,我们可以得出结论,错误的原因是会话没有打开;-)


Ana*_*man 7

我想我找到了答案:

会话已结束

我还没有实现它


ACV*_*ACV 7

您可以在控制器方法上使用此注释:

@Transactional(readOnly = true)
Run Code Online (Sandbox Code Playgroud)