Spring之事务传播

在TransactionDefinition接口中定义

事务的7中传播特性

  1. PROPAGATION_REQUIRED
    支持当前事务,如果当前没有事务,则新建一个事务,这是最常见的选择。 也就是说如果当前有事务,则加入到当前事务中,没有则新建事务执行。
  2. PROPAGATION_SUPPORTS
    支持当前事务,如果当前没有事务,则以非事务的方式执行。
  3. PROPAGATION_MANDATORY
    支持当前事务,如果当前没有事务,则抛出异常。
  4. PROPAGATION_REQUIRES_NEW
    新建事务,如果当前存在事务,则将当前事务挂起。注意,这是启动一个新的,不依赖于环境的事务,这个事务将被完全的commited或rolled back而不依赖于其他外部事务,它拥有自己的隔离范围,锁等。当事务开启执行时,外部事务会被挂起,当它结束之后,外部事物才会被执行。
  5. PROPAGATION_NOT_SUPPORTED
    以非事务方式提交,如果当前存在事务,就把当前事务挂起。
  6. PROPAGATION_NEVER
    以非事务方式提交,如果当前存在事务,就抛出异常。
  7. PROPAGATION_NESTED
    如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
    注意:它开始一个嵌套的事务,它是已经存在的事务的一个真正的子事务。嵌套事务开始执行时,将取得一个savepoint,如果这个嵌套事务失败,它将进行回滚到此savepoint。嵌套事务是外部事务的一部分,只有外部事务结束后它才会被提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值