0
我们有一个servlet来处理许多并发请求,有时候一些请求会抛出异常。只见从休眠指导这样的警告:Hibernate中的事务每会话或每事务查询模式?
“如果Session抛出异常,包括任何的SQLException, 立即回滚数据库事务,调用Session.close() ,丢弃该Session实例。”
在我的真实场景中,请求已经对数据库进行了许多重要更改,当我们发现异常时,我们必须回滚之前所做的所有更改。
因此,我们似乎必须实现事务每请求模式,而不是事务每查询,以确保所有更改都将被回滚。
是吗?
这种模式的性能和并发环境中的可伸缩性如何?我发现每笔交易都会有很多查询。但是Hibernate指南说: “为了减少数据库中的锁争用,数据库事务必须尽可能短。” – QuangHD 2012-07-28 11:31:55