事务传播行

本文详细介绍了Spring中的7种事务传播行为,包括REQUIRED(默认)、MANDATORY、SUPPORTS、REQUIRES_NEW、NOT_SUPPORTED、NEVER和NESTED,阐述了每种行为的含义和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:事务传播行为
1.事务传播行为含义
事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行。

2.事务的7种传播行为
1.REQUIRED(默认)
2.MANDATORY
3.NOT_SUPPORTED
4.SUPPORTS
5.REQUIRES_NEW
6.NEVER
7.NESTED

3.事务传播行为的详细介绍

REQUIRED(默认): 是Spring默认的传播机制。如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新事务。REQUIRED传播机制最常用的情况是在一个事务中进行多个操作,要么全部成功,要么全部失败。如果其中一个操作失败,整个事务都将被回滚。

SUPPORTS:传播机制表示当前方法如果在一个事务中被调用,则加入该事务;否则,以非事务的方式运行。SUPPORTS传播机制适用于对事务要求不高的操作,例如读取操作。

MANDATORY:传播机制表示当前方法必须在一个事务中被调用,否则将抛出异常。MANDATORY传播机制适用于在需要事务的情况下调用方法。

REQUIRES_NEW:传播机制表示当前方法必须开启一个新事务运行,如果当前存在事务,则挂起该事务。REQUIRES_NEW传播机制适用于对事务要求较高的操作,例如更新操作。

NOT_SUPPORTED:传播机制表示当前方法不应该在事务中运行,如果存在事务,则挂起该事务。NOT_SUPPORTED传播机制适用于对事务没有要求的操作,例如日志记录等。

NEVER:传播机制表示当前方法不应该在事务中运行,如果存在事务,则抛出异常。NEVER传播机制适用于禁止在事务中运行的操作,例如安全检查等。

NESTED:传播机制表示当前方法必须在一个嵌套事务中运行,如果当前存在事务,则在该事务内开启一个嵌套事务;如果当前没有事务,则创建一个新事务。NESTED传播机制适用于需要分步操作的场景,例如订单中创建订单和订单项的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值