我们有一个servlet来提供许多并发请求,有时还有一些请求抛出异常。我在Hibernate指南中看到了这个警告:
“如果Session抛出异常,包括任何SQLException, 立即回滚数据库事务,调用Session.close() 并丢弃会话实例。“
在我的实际场景中,一个请求对DB进行了许多重要的更改,当我们发现异常时,我们必须回滚之前所做的所有更改。
因此,似乎我们必须实现每请求事务处理模式而不是每个查询事务,以确保所有更改都将回滚。
没错?
答案 0 :(得分:0)
这取决于您想要什么,但是,通常,您希望在请求的生命周期中使用一个事务,并且您希望该请求的所有数据库操作都参与该一个事务。通常,这也意味着有一个会话绑定到请求。