@Transactional(REQUIRES_NEW)中的回滚是否会传播到外部事务?

时间:2012-09-11 16:11:19

标签: spring transactions

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

1 个答案:

答案 0 :(得分:2)

是的,这是预期的行为。执行内部事务时暂停外部事务。一旦内部事务结束(无论是提交还是回滚),外部事务将恢复。

BTW,the documentation说:

  与PROPAGATION_REQUIRED相比,

PROPAGATION_REQUIRES_NEW使用了   每个受影响的交易完全独立的交易   范围。在这种情况下,底层的物理交易是   不同的,因此可以独立提交或回滚   外部事务不受内部事务的回滚影响   状态。

相关问题