Hibernate中的每会话事务或每查询事务模式?

时间:2012-07-28 11:09:20

标签: hibernate exception transactions rollback

我们有一个servlet来提供许多并发请求,有时还有一些请求抛出异常。我在Hibernate指南中看到了这个警告:

  

“如果Session抛出异常,包括任何SQLException,   立即回滚数据库事务,调用Session.close()   并丢弃会话实例。“

在我的实际场景中,一个请求对DB进行了许多重要的更改,当我们发现异常时,我们必须回滚之前所做的所有更改。

因此,似乎我们必须实现每请求事务处理模式而不是每个查询事务,以确保所有更改都将回滚。

没错?

1 个答案:

答案 0 :(得分:0)

这取决于您想要什么,但是,通常,您希望在请求的生命周期中使用一个事务,并且您希望该请求的所有数据库操作都参与该一个事务。通常,这也意味着有一个会话绑定到请求。

相关问题