Spring事务传播行为有7种
- 事务传播行为指的是某一个事务传播行为修饰的方法被嵌套进另一个方法中时,事务是如何传播的。
public void methodA(){
methodB();
}
@Transaction(Propagation=XXX)
public void methodB(){
}
- propagation_required(要求传播):如果当前没有事务,就新建一个事务;如果已经有事务了,就加入到这个事务中。这种传播行为是用的比较多的。
- propagation_supports(支持传播):支持当前事务,如果当前没有事务,就以非事务的方式执行。
- propagation_mandatory(强制传播):使用当前事务,如果当前没有事务,就抛出异常。
- propagation_requires_new(要求新的传播):新建事务,如果当前存在事务,就把当前事务挂起。
- propagation_not_supported(不支持传播):以非事务方式执行,如果当前存在事务,就把当前事务挂起。
- propagation_never(永不传播):以非事务方式执行,如果当前存在事务,就抛出异常。
- propagation_nested(嵌套传播):如果当前存在事务,就在嵌套事务内执行;如果当前没有事务,就执行和 propagation_required 一样的操作。