英文:
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).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论