在Spring中使用哪种传播?

mst*_*fdz 5 java spring spring-transactions

我有两个不同的过程(A和B),A必须在B之后开始,B一定不能加入A的事务,B必须等到A完成提交。

我应该使用哪种传播方式?

现在就像:

@Transactional
A()
Run Code Online (Sandbox Code Playgroud)

@Transactional
B()
Run Code Online (Sandbox Code Playgroud)

现在,我使用它defult @Transactional,它无法正常工作。我认为我应该使用PROPAGATION

我希望问题清楚。提前致谢。

Ali*_*ani 5

如果B()在其事务上下文中调用A()A()则应使用REQUIRES_NEW传播来拥有自己的独立事务。 在此处输入图片说明

根据spring框架的数据访问部分

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