A需要调B,B有事物,B需要调C,C也有事物
求问:是同时运行两个事物还是一个一个来
如果是用spring来管理事务,就需要看你的事务级别是哪些了。
PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务,就加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
所以你的既有可能是C沿用B的事务;也有可能在调用C的时候,B的事务被挂起,知道C的事务提交完成。
所以不同的事务级别会导致不同的调用结果。
如果有帮助,希望结帖
一个一个来,先画出活动图,然后再写程序。
当然是二个事务,先后分别执行。
至于,那个先,主要看那个起主导作用,是否影响另一个事务的处理。