什么是传播行为?
在一个业务方法中,调用另一个业务方法
例如:方法B中调用了方法A
Spring中提供了7种事务的传播行为
保证多个操作在同一个事务中
PROPAGATION_REQUIRED (常用)
默认值,如果A中有事务,则使用A中的事务,如果A没有,创建一个,将操作包含进来
PROPAGATION_SUPPORTS
支持事务,如果A中有事务,则使用A中的事务,如果A没有事务,不使用事务
PROPOGATION_MANDATORY
如果A中有事务,使用A中的事务,如果A没有事务,抛出异常
保证多个操作不在同一个事务中
PROPAGATION_REQUIRES_NEW
如果A中有事务,将A的事务挂起,创建新事务,只包含自身操作,如果A中没有事务,创建新事务,包含自身操作
PROPOGATION_NOT_SUPPORTED
如果A中有事务,将A的事务挂起,不使用事务
PROPAGATION_NEVER
如果A中有事务,报异常
嵌套式事务
PROPAGATION_NESTED
嵌套事务,如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点,执行B中操作,如果没异常,通过,如果有异常,可以选择回滚到最初的位置,也可以回滚到保存点