学习一下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

转载于:https://www.cnblogs.com/leodaxin/p/10450977.html

Spring事务嵌套相关推荐

  1. Transaction silently rolled back because it has been marked as rollback-only Spring事务嵌套问题

    A和B都有事务,A调用B,B中抛出了异常,A这边捕获B的异常,但是没有将异常抛出,导致A方法执行结束时,提交事务,出现了上述的错误. 同一个类,内部方法调用不走代理,spring基于注解的事务是基于代 ...

  2. Spring事务嵌套引发的问题--Transaction rolled back because it has been marked as rollback-only...

    转载https://blog.csdn.net/f641385712/article/details/80445912 读了两边才找到问题

  3. 《深入理解分布式事务》第三章 Spring 事务的实现原理

    <深入理解分布式事务>第三章 Spring 事务的实现原理 文章目录 <深入理解分布式事务>第三章 Spring 事务的实现原理 一.Spring 事务原理 1.JDBC 直接 ...

  4. Spring事务管理中异常回滚知识点总结

    记录总结Spring核心知识点:事务使用与它的传播机制 目录 前言 问题场景 Spring 管理事务的原理 MySQL中的事务管理 JDBC中的事务管理 Spring 中的事务管理 Spring中的事 ...

  5. Spring事务的实现原理

    目录 一.Spring事务分类 二.Spring事务的三大接口 2.1 PlatformTransationManager接口 2.2 TransactionDefinition接口 2.3 Tran ...

  6. 事务嵌套问题_注意Spring事务这一点,避免出现大事务

    背景 本篇文章主要分享压测的(高并发)时候发现的一些问题.之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅.废话不多说,进入正题. 事 ...

  7. java 事务嵌套_解惑 spring 嵌套事务

    解惑spring嵌套事务 在所有使用spring的应用中,声明式事务管理可能是使用率最高的功能了,但是,从我观察到的情况看,绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义,让我们来看一 ...

  8. Spring事务传播机制以及事务嵌套

    Spring事务传播机制以及事务嵌套 Spring事务传播机制 事务嵌套场景 情景0: 场景1:不同类中,开启事务的方法调用没有开启事务的方法 场景2:不同类中,methodA方法嵌套methodB方 ...

  9. (转)面试必备技能:JDK动态代理给Spring事务埋下的坑!

    一.场景分析 最近做项目遇到了一个很奇怪的问题,大致的业务场景是这样的:我们首先设定两个事务,事务parent和事务child,在Controller里边同时调用这两个方法,示例代码如下: 1.场景A ...

最新文章

  1. opencv双目测距资料整理
  2. BZOJ 4244 邮戳拉力赛 (DP)
  3. 直播报名 | 券商如何精细化运营?
  4. HTTP请求tomcat版本升级无法识别问题
  5. AutoCAD 百度网盘免费下载
  6. markdown 在线解析 工具
  7. speedoffice(Word)怎么添加页码
  8. 批发进销存软件哪个好用?求测评
  9. 【selenium实例一】网易云歌单封面图片
  10. 已知经纬度坐标求两点间距离,用python表示
  11. 解决微信小程序 app onLaunch异步请求,在没有请求执行完就加载首页了的问题
  12. 2013年6月2日星期日
  13. python3基础知识复习 --TKinter GUI的终极选择(2)
  14. 原生JS实现抛物线动画以及动态模糊效果
  15. Codeforces Round #776 (Div. 3)-D. Twist the Permutation
  16. android 再议
  17. Failed to calculate the value of task ‘:unityLibrary:compileDebugJavaWithJavac‘
  18. 开源驱动 大黄蜂驱动_客户驱动的开源是软件的未来
  19. php防刷红包,PHP防止刷微信红包方法
  20. 为什么划分内核态、用户态?

热门文章

  1. go-基础知识二-数据类型-变量
  2. 《大型数据库技术》MySQL数据库安装配置及基础使用
  3. Linux操作Oracle(17)——linux oracle启动时 :各种报错 解决方案(2020.07.30更新...)
  4. VNPY价差交易模块
  5. matplotlib绘图跳过时间段的处理方案
  6. 嵌入式工程师有发展前途吗?这是我看过最靠谱的回答
  7. FineReport性能调优的一些办法
  8. c语言如何写地图,自己用C语言写的扫雷地图
  9. 中仪股份管道机器人_中仪股份携带管道机器人再次出发美国,携手2018年WEFTEC欢度国庆...
  10. ddr老化测试_手把手教你评估和测试固态存储【深度】