Spring 7种事务传播行为
PROPAGATION_REQUIRED
PROPAGATION_REQUIRES_NEW
PROPAGATION_NESTED
PROPAGATION_SUPPORTS
PROPAGATION_NOT_SUPPORTED
PROPAGATION_NEVER
PROPAGATION_MANDATORY
spring解决方法之间的事务传播,
如:
方法A有事务,方法B也有事务
方法A有事务,方法B没有事务
方法A没有事务,方法B有事务
方法A没有事务,方法B也没有有事务
1,如果没有,新建一个事务,如果有,加入当前事务,spring默认事务传播行为
2,如果没有,新建一个事务,如果有,将当前事务挂起,即新建一个事务,该事物和原来的事务没有关系
3,如果没有,新建一个事务,如果有,就在当前事务中嵌套其他事务,即子事务和主事务有关联(主事务提交或回滚,子事务也会提交或回滚)
4,如果没有,就以非事务方式执行,如果有,使用当前事务
5,如果没有,就以非事务方式执行,如果有,就将当前事务挂起
6,如果没有,就以非事务方式执行,如果有,抛出异常
7,如果没有,就抛出异常,如果有,就使用当前事务