Spring同一个类事务处理

  • 同一个类不同方法事务可以传播(需要满足事务的前提)
    • 同一个类两个不同方法调用(注解方式)
    • 同一个类两个不同方法调用(注解方式,父方法捕捉了异常)
    • 同一个类两个不同方法调用(注解方式,父方法未使用事务)
    • 同一个类两个不同方法调用(子方法编码事务方式,父方法未使用事务)
    • 同一个类两个不同方法调用(子方法编码事务方式,父方法使用注解事务)
    • 结论

同一个类不同方法事务可以传播(需要满足事务的前提)

你好!查看一些博客说,同一个类的不同标有事务注解的方法不可以传播。今天就以身试法,尝试一下,不同情况下事务的回滚情况。

同一个类两个不同方法调用(注解方式)

首先看到是同一个类中的两个方法,更新不同的字段。


test类中的测试方法

执行后数据库结果:发现数据并没有被更新。

同一个类两个不同方法调用(注解方式,父方法捕捉了异常)

同一个类中的两个方法,更新不同的字段。

test类中的测试方法

执行后数据库结果:发现数据被更新了,都没有回滚。

同一个类两个不同方法调用(注解方式,父方法未使用事务)

同一个类中的两个方法,更新不同的字段。

test类中的测试方法

执行后数据库结果:发现数据被更新了,子方法没有回滚数据。

同一个类两个不同方法调用(子方法编码事务方式,父方法未使用事务)

同一个类中的两个方法,更新不同的字段。

test类中的测试方法

执行后数据库结果:发现父方法数据被更新了,子方法回滚数据。

同一个类两个不同方法调用(子方法编码事务方式,父方法使用注解事务)

同一个类中的两个方法,更新不同的字段。

test类中的测试方法

执行结果:发现卡在了子方法的更新上

注意:一个流程方法中,混用不同的事务方式,会卡在子事务操作这里。

结论

根据上面的测试结果。
同一个类不同方法是可以传播事务的。
注解方式的事务,异常需要抛出去,才能回滚事务。

Spring同一个类事务处理相关推荐

  1. Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转)

    Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) 参考文章: (1)Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) (2)https://www. ...

  2. spring同一个类中,一个方法调用另外一个注解(@Transactional)方法时,注解失效

    title: "spring同一个类中,一个方法调用另外一个注解(@Transactional)方法时,注解失效" url: "https://wsk1103.githu ...

  3. Spring同一个类中注解方法互相调用的问题

    在使用Spring时,很多初学者不了解Spring对象注入的机制和面向切面编程的原理,很容易犯一些错误.下面就是初学者最容易犯的错误.举例如下: @Component public class Tes ...

  4. @transactional注解_为啥同一个类中普通方法调用Spring注解方法,注解会失效?看完你就明白,So easy!...

    Spring注解(如@Transactional.@Cacheable.@Async等),在使用不当时,很可能会失效.失效的情况有很多种,本文我们就来瞅瞅,为啥同一个类中普通方法调用Spring注解方 ...

  5. Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法

    Spring 事务机制回顾 Spring事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务.  结果造成开发人员在设计事务方法时束手束脚,生怕一不小心就踩到地雷.    ...

  6. 在同一个类中调用另一个方法没有触发 Spring AOP 的问题

    实例: @Target(value = {ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @in ...

  7. Spring中同一个类中方法调用事务不生效,非事务方法调用事务方式事务不生效

    我们假定在SerivceXXX中有两个方法: serviceA 非事务方法 serviceB事务方法 如果serviceA中方法定义类似如下: public void serviceA(){..... ...

  8. 腾讯二面:@Bean与@Component用在同一个类上,会怎么样?

    文章来源:https://sourl.cn/nN9qXE 疑虑背景 | 疑虑描述 最近,在进行开发的过程中,发现之前的一个写法,类似如下: 以我的理解,@Configuration 加 @Bean 会 ...

  9. Spring component-scan类扫描加载过程

    2019独角兽企业重金招聘Python工程师标准>>> https://github.com/javahongxi 有朋友最近问到了spring加载类的过程,尤其是基于annotat ...

最新文章

  1. iOS高效开发必备的10款Objective-C类库
  2. 算法 有两个相同大小数组均已按升序排列好 编程计算这两个数组的中位数 C
  3. ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分
  4. 如何向5岁小孩解释什么是支持向量机(SVM)?
  5. python2与python3同时安装_Win10下python3和python2同时安装并解决pip共存问题
  6. MySQL-安全对调两个表名
  7. L1-034 点赞 (20 分)
  8. 剑指offer——面试题56:链表中环的入口
  9. Spring Security Oauth2系列(一)
  10. JAVA- Jersey使用示例
  11. 如何在AngularJS中使用SpreadJS?
  12. matlab 三边测量,三边测量的定位算法,matlab转为c
  13. Auto.js微信抢红包脚本
  14. .net core | donet core IIS 文件路径问题
  15. 2021年UI设计面试问题及答案解析
  16. hdmi 计算机 接口类型,HDMI接口有几种规格尺寸?高清HDMI接口知识大扫盲
  17. 【190320】VC 视频捕捉与网络传输源代码
  18. 给剧荒的你:Python高分日剧刷剧指南
  19. 音乐转换成16进制写进单片机的方法(音符频率和音符的播放长度时间计算)
  20. “左手画圆,右手画方”

热门文章

  1. 权限管理系统(用户信息管理模块业务组件实现代码,带注解)
  2. 海康软件web拉取视频流遇到的坑
  3. Error creating bean with name ‘ribbonLoadBalancingHttpClient‘
  4. 转:Emacs生存指南 (Emacs入门必读)
  5. python的argc与argv
  6. 最大后验概率估计算法(简单,通俗易懂)
  7. java唯一id_生成唯一ID的四种办法 程序员必备
  8. 彩虹7色的RGB及CMYK值列表参考
  9. 【Unity面试】 C#语言基础核心 | 面试真题 | 全面总结 | 建议收藏
  10. FleaPHP 学习笔记2