事务的传播行为
一个业务方法当中,调用另一个业务的方法(他们当中都涉及到事务的操作)比如B业务种调用到A业务的方法
spring中提供的传播行为(7种)
保证多个操作在同一个事务中
PROPAGATION_REQUIRED(开发使用):默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来
PROPAGATION_SUPPORTS:支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。
PROPAGATION_MANDATORY:如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。
保证多个操作在同一个事务中
PROPAGATION_REQUIRED(开发使用):默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来
PROPAGATION_SUPPORTS:支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。
PROPAGATION_MANDATORY:如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。
嵌套式事务
PROPAGATION_NESTED:(开发使用)
嵌套事务,如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点
执行B中的操作,如果没有异常,执行通过,如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点