Spring的事务传播性

什么是事务传播行为?

事务的传播行为是在事务之间出现包含或嵌套是才会用到。

Spring中有七种事务的传播行为:

  • PROPAGATION_REQUIRED

它是默认传播行为。如果不存在外层事务,就创建新事务;否则使用外层事务。

  • PROPAGATION_SUPPORTS

支持事务。如果存在外层事务,就沿用当前事务;否则采用无事务的方式运行内部方法。

  • PROPAGATION_MANDATORY

必须使用事务。如果不存在外层事务,就抛出异常;否则使用外层事务。

  • PROPAGATION_REQUIRES_NEW

无论外层事务是否存在,都会创建新事务运行内部方法,与外层事务相互独立。

  • PROPAGATION_NOT_SUPPORTED

不支持事务。如果存在外层事务,将挂起事务对于内部方法。

  • PROPAGATION_NEVER

不支持事务。如果存在外层事务,则抛出异常,否则继续使用无事务机制运行。

  • PROPAGATION_NESTED

在当前方法调用内部方法时,如果内部方法发生异常,只回滚内部方法执行过的 SQL ,而不回滚当前方法的事务。

配置事务传播行为

  • 使用org.springframework.transaction.annotation包下的@Transactional注解,并声明propagation属性即可(默认值为Propagation.REQUIRED)
 @Transactional(propagation = Propagation.REQUIRED)
  • 事务传播行为是作用于内层方法上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值