目前我有一个控制器在服务A中调用@Transactional
带注释的方法,该方法将实体插入数据库,然后调用更新实体的服务B中的另一个方法。
我只想调用服务A中的方法,然后服务A将调用服务B中的方法。第一个事务应该在服务A的方法中发生,而另一个事务应该在一个方法中发生。服务B。
我试图理解@Transactional
注释,isolation
和propagation
以实现这一目标,但我无法使其发挥作用。
答案 0 :(得分:2)
如果您想将服务B中的交易与服务A中的交易分开,那么您必须使用Propagation.REQUIRES_NEW
开始新交易。
将您的服务B方法标记为:
@Transaction(propagation = Propagation.REQUIRES_NEW)