Spring事务的传播行为,详细且通俗易懂的解释

REQUIRED(默认的事务传播行为):使用调用方的事务,如果调用方没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的,如果调用方存在事务,则加入当前事务,成为一个整体。(适用于增、删、改、查)
举例:领导没饭吃,我有钱,我会自己买了自己吃;领导有的吃,会分给你一起吃。

SUPPORTS:如果调用方有事务,则使用调用方事务;如果调用方没有事务,则不使用事务。(适用于查询)
举例:领导没饭吃,我也没饭吃;领导有饭吃,我也有饭吃。

MANDATORY:强制调用方必须存在事务,如果不存在,就抛出异常。(不常用)
举例:领导必须管饭吃,没吃饭我就不乐意了,我就抛出异常。

REQUIRES_NEW:如果调用方存在事务,则挂起该事务,我自己创建一个事务。如果当前没有事务,我会自己创建一个。(适用于内部事务和外部事物不关联的情况,比如日志)
举例:领导有饭吃,我偏不要,我自己买饭吃。

NOT_SUPPORTS:如果调用方存在事务,则挂起该事务,不使用事务。(不常用)
举例:领导有饭吃,分我一点,我太忙了不吃。

NEVER:如果调用方存在事务,则抛出异常。(不常用)
举例:领导有饭吃,分我我不吃,我还抛出异常。

NESTED:如果调用方存在事务,则开启子方法事务(嵌套事务),嵌套事务是独立提交或者回滚;
如果调用方没有事务,则同REQUIRED。(不常用)
如果主事务提交,则会携带子事务一起提交。
如果主事务回滚,则子事务也会回滚;如果子事务回滚,则主事务可以回滚也可以不回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值