事务嵌套 、事务挂起、事务传播特性

事务嵌套 、事务挂起、事务传播特性

即多个事务方法嵌套调用时 父子方法的事务如何嵌套、合并、管理

场景 方法啊调用方法b 方法b是事务方法 方法a不确定时(a可能有事务注解)

具体七种

propagation_requierd 默认
	如果父方法没有事务,子方法就建立一个事务。
	如果父方法有事务,子方法就融入这个事务里。
propagation_supports
	如果父方法有事务,子方法就融入这个事务里。
	如果父方法没有事务,子方法也不建立主动事务,就以非事务方法执行。
propagation_mandatory
	如果父方法有事务
		子方法就融入这个事务里
	如果父方法没有事务
		调用子事务方法时抛出异常
propagation_required_new
	如果父方法有事务
		子方法把父方法的事务挂起
			然后执行子方法
	如果父方法没有事务
		子方法主动新建事务
propagation_not_supported
	如果父方法没有事务
		子方法也不建立主动事务
			就以非事务方法执行
	如果父方法有事务
		子方法把父方法的事务挂起
			然后执行子方法
propagation_never
	如果父方法没有事务
		子方法也不建立主动事务
			就以非事务方法执行
	如果父方法有事务
		调用子事务方法时抛出异常
propagation_nested
	如果父方法没有事务
		子方法就建立一个事务
	如果父方法有事务
		则事务嵌套执行

事务挂起(事务方法a调用事务方法b)

(事务的创建,挂起,回归,提交)
挂起时,事务方法a在调用方法b时,事务a会被挂起,
事务a里面的属性值,中间状态值会被缓存到 SuspendedResourcesHolder 这个Bean对象里
		然后进入方法b,去执行方法b
		方法b执行完以后,再回到方法a,去恢复事务a 、然后完成事务

事务嵌套(两个事务方法嵌套使用时 propagation_nested)

1、父事务回滚,子事务也回滚
2、子事务回滚,父事务也回滚。在子事务里,可以通过 Try catch 去捕捉,保证 子事务回滚 父事务不回滚
在这里插入图片描述
可以直接通过脑图了解事务嵌套、事务挂起、和七种事务传播特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值