当前位置:网站首页>事务的七种传播行为

事务的七种传播行为

2022-07-07 10:41:00 白羊座橙子的学习笔记

一、什么是事务的传播行为

事务的传播行为指的是: 当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行
例如:methodA方法调用methodB方法时,methodB是继续在调用者A的事务中运行呢,还是为自己开启一个新事务运行。这就是由methodB的事务传播行为决定的。

二、事务的七种传播行为

1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务;如果当前存在事务,就加入改事务(这是最常见的选择)
2、PROPAGATION_SUPPORTS:如果当前存在事务,就加入该事务;如果当前不存在事务,就以非事务执行
3、PROPAGATION_MANDATORY:如果当前存在事务,就加入该事务;如果当前不存在事务,就抛出异常
4、PROPAGATION_REQUIRES_NEW:无论当前存不存在事务,都创建新事务
5、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起
6、PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常
7、PROPAGATION_NESTED:

三、上面一些概念的理解

1、事务挂起

例如 方法A支持事务,方法B不支持事务,方法A调用方法B
在方法A开始运行时,系统为它建立Transaction,方法A中对于数据库的处理操作,会在该Transaction的控制之下。这时,方法A调用方法B,方法A打开的 Transaction将挂起,方法B中任何数据库操作,都不在该Transaction的管理之下。当方法B返回,方法A继续运行,之前的Transaction回复,后面的数据库操作继续在该Transaction的控制之下 提交或回滚。

原网站

版权声明
本文为[白羊座橙子的学习笔记]所创,转载请带上原文链接,感谢
https://blog.csdn.net/hc1285653662/article/details/125607513