Spring事务传播:从NOT_SUPPORTED更改为REQUIRES_NEW

huangapple go评论72阅读模式
英文:

Spring Transaction Propagation from NOT_SUPPORTED to REQUIRES_NEW

问题

我正在进行模块的重构,其中一个初始方法带有注解 @Transactional(propagation = Propagation.NOT_SUPPORTED),这个方法调用了另一个带有注解 @Transactional(propagation = Propagation.REQUIRES_NEW) 的方法。

我的问题是,由于初始方法未创建新事务,被调用的方法会创建一个新事务吗?

英文:

I'm working on refactoring a module with an initial method annotated with @Transactional(propagation = Propagation.NOT_SUPPORTED) and this method invokes another method that has the annotation @Transactional(propagation = Propagation.REQUIRES_NEW).

My question is, since the initial method is not creating a new transaction, the invoked method will create a new transaction?

答案1

得分: 1

是的,被调用的方法将在新事务中创建并运行。

REQUIRES_NEW 总是会创建一个新事务,不管调用者方法的事务模式如何(即使调用者已经创建了一个事务)。

英文:

Yes, the invoked method will create and run in a new transaction.

REQUIRES_NEW will always create a new transaction irrespective of transactional mode of caller method (even if caller already created a transaction).

huangapple
  • 本文由 发表于 2020年10月6日 07:40:45
  • 转载请务必保留本文链接:https://go.coder-hub.com/64217521.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定