【问题标题】:Will a rollback in a @Transactional(REQUIRES_NEW) be propagated to the outer transaction?@Transactional(REQUIRES_NEW) 中的回滚是否会传播到外部事务?
【发布时间】:2012-09-11 16:11:19
【问题描述】:

我有一个调用@Transactional(REQUIRES_NEW) 的@Transactional(REQUIRED) 方法。我看到的默认行为是内部事务正在回滚,但外部事务正在提交。这是预期的行为吗?

【问题讨论】:

    标签: spring transactions


    【解决方案1】:

    是的,这是预期的行为。执行内部事务时,外部事务被挂起。一旦内部事务结束(无论是提交还是回滚),外部事务就会恢复。

    顺便说一句,the documentation 这么说:

    PROPAGATION_REQUIRES_NEW 与 PROPAGATION_REQUIRED 相比,使用 每个受影响的交易完全独立的交易 范围。在这种情况下,基础的实物交易是 不同,因此可以独立提交或回滚,具有 外部事务不受内部事务回滚的影响 状态。

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 2017-11-21
      • 2016-11-16
      • 2020-06-12
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2012-10-14
      相关资源
      最近更新 更多