事务嵌套 、事务挂起、事务传播特性
事务嵌套 、事务挂起、事务传播特性
即多个事务方法嵌套调用时 父子方法的事务如何嵌套、合并、管理
场景 方法啊调用方法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 去捕捉,保证 子事务回滚 父事务不回滚
可以直接通过脑图了解事务嵌套、事务挂起、和七种事务传播特性
事务嵌套 、事务挂起、事务传播特性相关推荐
- Spring事务传播特性实例解析
背景介绍 目前系统正在进行代码重构前期预研工作,目标采用spring控制事务以减少开发代码量,提高开发效率.同时避免开发人员编码控制事务所带来的链接没有释放,事务没有提交,出现异常事务没有回滚的Bug ...
- mysql的传播特性_spring事务传播特性和mysql事务隔离级别
spring事务的传播特性--7种 REQUIRED 支持当前事务,如果没有事务会创建一个新的事务 SUPPORTS 支持当前事务,如果没有事务的话以非事务方式执行 MANDATORY(强制性) 支持 ...
- mysql数据库事务传播特性_什么是事务的传播特性?
我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档) 在我们用SSH开发项目的时候,我们一般都是将事务设置 ...
- 哒哒哒~~今天说 事务的隔离级别和传播特性
哒哒哒~~今天说 事务的隔离级别和传播特性 正所谓在数据库中,所谓事务是指一组逻辑操作单元即一组sql语句.当这个单元中的一部分操作失败,整个事务回滚,只有全部正确才完成提交. 事务的ACID属性 原 ...
- Spring事务传播特性实例解析(以及如何使用注解形式事务)
原文地址:http://blog.csdn.net/yoara/article/details/16114853 原文地址的文章,写的demo会误导读者,所以在原文地址文章的基础上对原作者的demo进 ...
- spring事务的隔离级别和传播特性详解(附实例)
spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager.对于编程式事务 ...
- Spring事务传播特性与事物隔离级别
红花易衰似郎意,水流无限似侬愁.--刘禹锡<竹枝词> 传播特性: 传播行为 意义 PROPAGATION_MANDATORY 表示该方法必须运行在一个事务中.如果当前没有事务正在发生,将抛 ...
- 什么是事务、事务特性、事务隔离级别、spring事务传播特性
1.什么是事务: 事务是指程序中的一个操作序列.其特点是:该序列的所有操作要么全部成功完成,要么只要有一个操作失败,则该序列所有操作都将被撤销.这也是事务的原子性(要么成功,要么失败). 2.事务特性 ...
- Spring 的事务隔离级别和传播特性
2019独角兽企业重金招聘Python工程师标准>>> 今天被人问了一个Oracle 关于事务的简单问题,结果自己一时间竟然说错了 死了死了的,只能说自己没有用心去理解这个问题. ...
最新文章
- 图像分割 2020 最新进展
- linux颜色吸取工具,8 个优秀的 Linux 图形图像及色彩工具
- 16 --删除排序数组中的重复项
- android 拖动进度,Android 可拖动的seekbar自定义进度值
- YiShaAdmin_项目的默认 XML 命名空间必须为 MSBuild XML 命名空间。如果项目是用 MSBuild 2003 格式---.Net_C#_若依.Net版Web框架使用及改造001
- ztree同级只显示一个节点
- 应用java编写 按键小脚本_一个使用JAVA编写的类似按键精灵的程序,支持脚本文件编写(含源代码) | 学步园...
- java计算交点高程_javascirpt怎样模仿块级作用域(js高程笔记)
- 地雷復 (易經大意 韓長庚)
- 以前用C++实现的RMM分词类型
- redis事件循环处理框架
- python获取kegg pathway map的信息
- Java运算符——————03
- 一个圆环上有好多控件,实现左右滑动以及近大远小的效果
- Python程序运行结束后发出提示音
- 企业数字化转型:IT部门的未来!
- PMON学习记录2:PMON启动流程1
- yolov3数据集制作
- oracle crs日志位置,oracle 10gr2 rac crs log 路径
- HP M1005打印问题
热门文章
- HTML积分小游戏,js实现带积分弹球小游戏
- spring的redis注解清除指定前缀的数据@CacheEvict
- 房地产行业的CRM应用
- 方案分享--直驱式风力发电实验仿真平台
- 关于使用tensorflow-gpu 1.14.0版本训练时出现“0 successful operations. 0 derived errors ignored.”的解决方法
- 微信小游戏复制文本到剪切板(JavaScript代码实现)
- 使用场外期权或期货进行套保的比较
- gPhone开发简介
- 李德仁院士:在夜光遥感数据中挖掘民生相关的信息
- 张三同学没答好「进程间通信」,被面试官挂了....