当我按如下方式调用session.begin事务方法时:
//session factory is instantiated via a bean Session session = this.getSessionFactory().getCurrentSession(); session.beginTransaction();
然后我得到以下异常消息
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)
造成此错误的原因是什么?
更新: 我想调用getCurrentSession()并不能保证该会话实际上是打开的。第一次,您应该使用
getCurrentSession()
Session session = this.getSessionFactory().openSession(); session.beginTransaction();
代替。该建议实际上与您找到的页面一致。
之前:
根据到目前为止的可用信息,我们可以得出结论,错误的原因是会话未打开;-)