我无法理解 PROPAGATION_REQUIRES_NEW
和 PROPAGATION_NESTED
传播策略之间的行为差异。在我看来,在这两种情况下,当前进程都会回滚,但不会回滚整个事务。有什么线索吗?
原文由 Alexis Dufrenoy 发布,翻译遵循 CC BY-SA 4.0 许可协议
我无法理解 PROPAGATION_REQUIRES_NEW
和 PROPAGATION_NESTED
传播策略之间的行为差异。在我看来,在这两种情况下,当前进程都会回滚,但不会回滚整个事务。有什么线索吗?
原文由 Alexis Dufrenoy 发布,翻译遵循 CC BY-SA 4.0 许可协议
PROPAGATION_REQUIRES_NEW :对每个受影响的事务范围使用完全独立的事务。在那种情况下,底层物理事务是不同的,因此可以独立提交或回滚,外部事务不受内部事务回滚状态的影响。
PROPAGATION_NESTED :使用具有多个可以回滚到的保存点的单个物理事务。这种部分回滚允许内部事务范围触发其范围的回滚,尽管某些操作已被回滚,但外部事务仍能够继续物理事务。此设置通常映射到 JDBC 保存点,因此仅适用于 JDBC 资源事务。
检查 弹簧文档
原文由 Nandkumar Tekale 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.6k 阅读
4 回答721 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答974 阅读✓ 已解决
请参阅此链接: PROPAGATION_NESTED 与 PROPAGATION_REQUIRES_NEW? Juergen Hoeller 解释得很好。 – Spring源码论坛自2019年2月28日起完全下线,但您可以阅读下方引述文章的相关部分