我在Hibernate上做这个教程:https://netbeans.org/kb/docs/web/hibernate-webapp.html
我的问题: 在完成指令并运行项目后,我得到了Hibernate错误:"严重:org.hibernate.TransactionException:不支持嵌套事务"
我试过" tx.commit();"关闭交易,但没有改变任何事情。
问题:为什么教程人员编写说明但现在不工作?以及如何让它发挥作用?
答案 0 :(得分:1)
更改
public FilmHelper() {
this.session = HibernateUtil.getSessionFactory().getCurrentSession();
}
到
public FilmHelper() {
this.session = HibernateUtil.getSessionFactory().openSession();
}
原因: 教程使用Hibernate 3,现在我正在使用Hibernate 4。 在Hibernate3中,一旦事务完成,它就会被关闭,并允许同一个会话打开一个带有NoProblem的新事务。 在Hibernate4中,一旦事务完成,它仍然是开放的。如果开发人员关闭它,那么会话就会关闭它。开发人员必须手动打开新会话。
如果有人对Hibernate有更多了解并希望添加到此,请在我下方发表评论。