A需要调B,B有事物,B需要调C,C也有事物
求问:是同时运行两个事物还是一个一个来
3条回答 默认 最新
little_how 2016-07-01 09:03关注如果是用spring来管理事务,就需要看你的事务级别是哪些了。
PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务,就加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。所以你的既有可能是C沿用B的事务;也有可能在调用C的时候,B的事务被挂起,知道C的事务提交完成。
所以不同的事务级别会导致不同的调用结果。如果有帮助,希望结帖
评论 打赏 举报解决 1无用