首页 > 技术文章 > 事务的传播机制

monkeybrother 2020-03-08 15:37 原文

传播机制    
PROPAGATION_REQUIRED
0

      如果当前存在事务,则加入当前事务,合并成一个事务

      如果当前没有事务,则新建事务

PROPAGATION_SUPPORTS
1

      如果当前存在事务,则加入事务

      如果当前不存在事务,则以非事务方式运行

PROPAGATION_MANDATORY
2

      如果当前存在事务,则运行在当前事务中

      如果当前无事务,则抛出异常,也即父级方法必须有事务

PROPAGATION_REQUIRES_NEW
3

     新建事务,如果当前存在事务,则把当前事务挂起

     这个方法会独立提交事务,不受调用者的事务影响,父级异常,它也是正常提交

PROPAGATION_NOT_SUPPORTED
4

      以非事务方式运行,如果当前存在事务,则把当前事务挂起

PROPAGATION_NEVER
5       以非事务方式运行,如果当前存在事务,则抛出异常,即父级方法必须无事务
PROPAGATION_NESTED
6

     如果当前存在事务,它将会成为父级事务的一个子事务,方法结束后并没有提交,只有等父事务结束才提交

     如果当前没有事务,则新建事务

     如果它异常,父级可以捕获它的异常而不进行回滚,正常提交

     但如果父级异常,它必然回滚,这就是和 REQUIRES_NEW 的区别

推荐阅读