spring事务传播特性
调用者事务与被调用者事务之间的关系
文章目录
七种事务传播行为
1. mandatory
使用当前事务,如果当前没有事务,就抛出异常。强制性。
2. requires_new
新建事务,如果当前有事务,把当前事务挂起。
(1)在外围方法未开启事务的情况下Propagation.REQUIRES_NEW
修饰的内部方法会新开启自己的事务,且开启的事务相互独立,互不干扰。
(2)在外围方法开启事务的情况下Propagation.REQUIRES_NEW
修饰的内部方法依然会单独开启独立事务,且与外部方法事务也独立,内部方法之间、内部方法和外部方法事务均相互独立,互不干扰。
3. required
如果当前没有事务,则新建一个事务,若有,就加入到这个事务中。最常见的选择。
(1)在外围方法未开启事务的情况下Propagation.REQUIRED
修饰的内部方法会新开启自己的事务,且开启的事务相互独立,互不干扰。
(2)在外围方法开启事务的情况下Propagation.REQUIRED