![](/img/trans.png)
[英]Transaction management for multiple database Using Spring & Hibernate
[英]Nested Transaction using Spring and Hibernate
在我的应用程序中,有多个步骤,通过多种方法顺序进行数据库的许多提交。 例:
A -> B -> C
-> D
->E
-> F
-> G
A呼叫B,呼叫C.然后B呼叫D.D呼叫E,依此类推。 所有这些方法都有一些数据库操作。 据我所知, PROPAGATION_REQUIRED
(声明式事务管理 - 弹簧推荐方式),如果E成功完成,则事务(以及E中的操作将被提交)。 现在,由于一些例外, F应该导致回滚。 我希望从A所做的一切开始回滚。 这可以通过声明式事务管理吗? 或者我应该使用程序化事务管理?
谢谢。
首先,不支持“嵌套”事务,即存在多个相互依赖的运行事务的事务。
然后, propagation=REQUIRED
意味着具有该传播的所有方法将:
这意味着在您的方案中, F
的失败将回滚整个事务(因为它是单个事务,由A
启动,并传播到其他方法)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.