事务的传播机制
传播机制 | ||
PROPAGATION_REQUIRED |
0 |
如果当前存在事务,则加入当前事务,合并成一个事务 如果当前没有事务,则新建事务 |
PROPAGATION_SUPPORTS |
1 |
如果当前存在事务,则加入事务 如果当前不存在事务,则以非事务方式运行 |
PROPAGATION_MANDATORY |
2 |
如果当前存在事务,则运行在当前事务中 如果当前无事务,则抛出异常,也即父级方法必须有事务 |
PROPAGATION_REQUIRES_NEW |
3 |
新建事务,如果当前存在事务,则把当前事务挂起 这个方法会独立提交事务,不受调用者的事务影响,父级异常,它也是正常提交 |
PROPAGATION_NOT_SUPPORTED |
4 |
以非事务方式运行,如果当前存在事务,则把当前事务挂起 |
PROPAGATION_NEVER |
5 | 以非事务方式运行,如果当前存在事务,则抛出异常,即父级方法必须无事务 |
PROPAGATION_NESTED |
6 |
如果当前存在事务,它将会成为父级事务的一个子事务,方法结束后并没有提交,只有等父事务结束才提交 如果当前没有事务,则新建事务 如果它异常,父级可以捕获它的异常而不进行回滚,正常提交 但如果父级异常,它必然回滚,这就是和 |