java在Spring中使用哪种传播?
我有两个不同的进程(A和B),A必须在B之后启动,B不能加入A的事务,B必须等到A完成其提交
我应该用什么
现在它就像:
@Transactional
A()
及
@Transactional
B()
现在我使用它defult@Transactional,它不能正常工作。我想我应该使用传播
我希望问题是清楚的。 提前谢谢
你可以在下面搜索框中键入要查询的问题!
我有两个不同的进程(A和B),A必须在B之后启动,B不能加入A的事务,B必须等到A完成其提交
我应该用什么
现在它就像:
@Transactional
A()
及
@Transactional
B()
现在我使用它defult@Transactional,它不能正常工作。我想我应该使用传播
我希望问题是清楚的。 提前谢谢
# 1 楼答案
如果
B()
在其事务上下文中调用A()
,那么A()
应该使用REQUIRES_NEW
传播来拥有自己的独立事务。根据spring框架的Data Access Section:
# 2 楼答案
这张照片告诉你为什么你应该使用新的。您想要的是调用总是在新事务(TX)上下文中发生
但是请注意:实际的事务暂停不会在所有事务管理器上都适用。如果您正在使用
JtaTransactionManager
,则需要使javax.transaction.TransactionManager
对其可用