Spring中定义的事务传播行为

 事务传播行为定义了被调用方法的事务边界。在Spring中定义了7中事务传播行为。总结为下表:

传播行为

意义

PROPERGATION_MANDATORY

表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常

PROPAGATION_NESTED

表示如果当前事务存在,则方法应该运行在一个嵌套事务中。新增Savepoint点,与当前事务同步提交或回滚

PROPAGATION_NEVER

表示方法不能运行在一个事务中,否则抛出异常

PROPAGATION_NOT_SUPPORTED

表示方法不能运行在一个事务中,如果当前存在一个事务,则该方法将被挂起

PROPAGATION_REQUIRED

表示当前方法必须运行在一个事务中,如果当前存在一个事务,那么该方法运行在这个事务中,否则,将创建一个新的事务

PROPAGATION_REQUIRES_NEW

表示建立新的事务,当前方法必须运行在自己的事务中,如果当前存在一个事务,那么这个事务将在该方法运行期间被挂起

PROPAGATION_SUPPORTS

表示当前方法支持运行在一个是事务中,如果有事务,该方法可以运行在这个事务中,如果没有事务,就以非事务方式执行

       Spring的API设计很不错,基本上根据英文翻译就能知道作用:

  • Required:必须的。说明必须要有事物,没有就新建事物。
  • supports:支持。说明仅仅是支持事务,没有事务就非事务方式执行。
  • mandatory:强制的。说明一定要有事务,没有事务就抛出异常。
  • required_new:必须新建事物。如果当前存在事物就挂起。
  • not_supported:不支持事物,如果存在事物就挂起。
  • never:绝不允许有事务。如果存在事物就抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值