事务嵌套 、事务挂起、事务传播特性
事务嵌套 、事务挂起、事务传播特性
即多个事务方法嵌套调用时 父子方法的事务如何嵌套、合并、管理
场景 方法啊调用方法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 关于事务的简单问题,结果自己一时间竟然说错了 死了死了的,只能说自己没有用心去理解这个问题. ...
最新文章
- 网络营销外包新策略——B站坚信求新求变才能得以“青春永驻”!
- Spring Boot 管理 MVC
- 如何云服务器销售,如何云服务器销售
- 实体bean里面不要轻易加transient,反序列回来之后会变成null
- 诗与远方:无题(八十二)- 遇到你真好
- 一步一步安装服务器监视软件MRTG
- 转义字符html识别吗,HTML转义字符对照表
- y电容如何选型_安规Y电容设计选型
- K8S学习之helm
- rvm、Ruby安装(亲测有效)
- 第三周学习总结和心得
- 【1月英语—罗塞塔之爱】
- idea license server 最新可用 IntelliJ IDEA 2018.1 x64 激活 idea license server
- H5指北针JavaScript代码
- Multiple PDN Connectivity
- widget jquery 理解
- 【玩转嵌入式屏幕显示】(四)TFT-LCD屏幕显示英文字符(ASCII)和字符串
- Python | 用Python制作送给女票的生日礼物
- 动漫网站源码设计与实现
- Windows下Visual Studio Code配置Shell开发环境 (超详细图文)| 瞬间提高200%生产力