Hibernate中的每会话事务还是每查询事务模式?
我们有一个servlet来服务许多并发请求,有时一些请求抛出异常。我在《Hibernate指南》中看到了以下警告: “如果会话引发异常,包括任何SQLException, 立即回滚数据库事务,调用Session.close() 并放弃会话实例。“ 在我的真实场景中,一个请求对数据库进行了许多重要的更改,当我们发现异常时,我们必须回滚以前所做的所有更改 因此,似乎我们必须实现每个请求的事务模式,而不是每个查询的事务模式,以确保所有更改都将回滚Hibernate中的每会话事务还是每查询事务模式?,hibernate,exception,transactions,rollback,Hibernate,Exception,Transactions,Rollback,我们有一个servlet来服务许多并发请求,有时一些请求抛出异常。我在《Hibernate指南》中看到了以下警告: “如果会话引发异常,包括任何SQLException, 立即回滚数据库事务,调用Session.close() 并放弃会话实例。“ 在我的真实场景中,一个请求对数据库进行了许多重要的更改,当我们发现异常时,我们必须回滚以前所做的所有更改 因此,似乎我们必须实现每个请求的事务模式,而不是每个查询的事务模式,以确保所有更改都将回滚 是吗 这取决于您想要什么,但是是的,一般来说,您希望在
是吗 这取决于您想要什么,但是是的,一般来说,您希望在请求的生命周期中有一个事务,并且希望该请求的所有db操作都参与到该事务中。通常,这也意味着有一个会话绑定到请求 这种模式在并发环境中的性能和可伸缩性如何?我知道每笔交易都会有很多查询。但是Hibernate指南说:“为了减少数据库中的锁争用,数据库事务必须尽可能短。”