其他分享
首页 > 其他分享> > SpringBoot2.x-7种事务的传播性

SpringBoot2.x-7种事务的传播性

作者:互联网

SpringBoot2.x-7种事务的传播性

概述

  • 默认值:Propagation.REQUIRED

  • 1.Propagation.REQUIRED(必须存在)

  • 2.Propagation.REQUIRED_NEW(存在就挂起并新建)(多个事务分开提交,分开回滚)

  • 3.Propagation.SUPPORTS(正常运行)

  • 4.Propagation.NOT_SUPPORTS(挂起运行)

  • 5.Propagation.MANDATORY(必须被事务调用)

  • 6.Propagation.NEVER(禁止)

  • 7.Propagation.NESTED(嵌套)(嵌套事务一起提交,一起回滚)

1.REQUIRED(必须存在)

进入方法时判断:

​ 1.当前存在事务,就加入当前事务。

​ 2.当前不存在事务,就新建事务。

2.REQUIRED_NEW(存在就挂起并新建)(多个事务分开提交,分开回滚)

进入方法时判断:

​ 1.当前存在事务,就挂起当前事务,然后新建事务。

​ 2.当前不存在事务,就新建事务。

3.SUPPORTS(正常运行)

进入方法时判断:

​ 1.当前存在事务,就加入事务。

​ 2.当前不存在事务,就不使用事务。

4.NOT_SUPPORTS(挂起运行)

进入方法时判断:

​ 1.当前存在事务,就挂起事务。

​ 2.当前不存在事务,就不使用事务。

5.MANDATORY(必须被事务调用)

进入方法时判断:

1.调用者是否存在事务,不存在就抛出 “不存在事务异常”

6.NEVER(禁止)

进入方法时判断:

1.存在事务就抛出 “非法状态异常”

7.NESTED (嵌套)(嵌套事务一起提交,一起回滚)

类比 REQUIRED_NEW
不一样的是
声明为REQUIRED_NEW,是多个事务,独立提交回滚,存在多个方法,部分提交,部分回滚。
声明为NESTED (嵌套),是多个事务,一起提交回滚,不存在多个方法,部分提交,部分回滚。



❀❀❀❀❀❀❀❀❀❀❀❀

标签:事务,嵌套,REQUIRED,回滚,传播,Propagation,SpringBoot2,存在
来源: https://blog.csdn.net/m0_37969197/article/details/122340592