Spring事务嵌套
2024-09-10 09:55:18
学习一下Spring的事务嵌套:https://blog.csdn.net/zmx729618/article/details/77976793
重点句子:
Juergen Hoeller 的话:
PROPAGATION_REQUIRES_NEW 启动一个新的, 不依赖于环境的 "内部" 事务. 这个事务将被完全 commited 或 rolled back 而不依赖于外部事务, 它拥有自己的隔离范围, 自己的锁, 等等. 当内部事务开始执行时, 外部事务将被挂起, 内务事务结束时, 外部事务将继续执行。
另一方面, PROPAGATION_NESTED 开始一个 "嵌套的" 事务, 它是已经存在事务的一个真正的子事务. 潜套事务开始执行时, 它将取得一个 savepoint. 如果这个嵌套事务失败, 我们将回滚到此 savepoint. 潜套事务是外部事务的一部分, 只有外部事务结束后它才会被提交。
由此可见, PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED 的最大区别在于, PROPAGATION_REQUIRES_NEW 完全是一个新的事务, 而 PROPAGATION_NESTED 则是外部事务的子事务, 如果外部事务 commit, 潜套事务也会被 commit, 这个规则同样适用于 roll back。
最新文章
- Hive Tutorial(上)(Hive 入门指导)
- barManager 挤压后“ 自动换行”和“自动隐藏”的实现方法
- dotNet下的一套解决方案
- SpringMVC解析5-DispatcherServlet逻辑细节
- 去除a标签单击后的虚线框
- jQuery对html进行Encode和Decode
- 极客DIY:开源WiFi智能手表制作
- 在sql中使用了 hashbytes 函数
- 51Nod 算法马拉松12 Rikka with sequences
- codeforces 652D Nested Segments 离散化+树状数组
- 使用fastjson前台报406的问题解决方法
- 371. Sum of Two Integers -- Avota
- 51 EEPROM操作模板
- C#中简单的写日志的方法
- [VUE]object.defineProperty的基本使用
- mysql的表映射
- easyui 传递参数报错(错误:uncaught SyntaxError: Unexpected identifier)
- 【GIS】GeoHash
- fine安装教程
- vue.cli项目中src目录每个文件夹和文件的用法