spring事务传播性(propagation)

事务传播性,事务方法之间调用的时候,事务的传播方式。

1、REQUIRED(required)

  这里假设调用者是A,被调用者是B

  默认的传播属性,如果A 有事务,加入A的事务,如果没有事务创建一个自己的事务回滚也就自己回滚;

2、REQUIRED_NEW

  创建一个新的事务,如果当前存在事务则把当前事务挂起,不管外部是否有事务都开启自己的事务,外面回滚里面作为独立事务不用回滚,里面回滚异常未处理的话外部也回滚。

  与REQUIRED的本质区别在于,可能存在两个事务,外部事务被挂起;

3、NESTED(nested)

  如果当前存在事务,创建一个事务作为当前事务的嵌套事务来运行,如果没有事务,则该取值等价于REQUIRED;

  主事务回滚,子事务一起回滚,子事务可以单独回滚不影响主事务(异常处理不被外部感知到的情况);

4、MANDATORY(mandatory)

  如果当前存在事务,加入事务,如果不存在事务抛出异常;

5、SUPPORTS

  如果当前存在事务,加入事务,没有事务则已非事务的形式运行;

6、NOT_SUPPORTS

  如果当前存在事务则挂起事务,自己肯定以非事务方式运行;内部肯定是不回滚的,外部是否回滚取决于内部事务异常是否被处理;

7、NEVER

  以非事务方式运行,有事务则抛出异常。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值