最近遇到了事务不回滚的情况,很多方法都加tyr catch,在catch中打印日志。但是方法异常时候,日志打印了事务却没有回滚。

Spring AOP异常捕获原理
被拦截的方法需显式抛出异常,并不能经任何处理,这样AOP代理才能捕获到方法的异常,才能进行回滚,默认情况下AOP只捕获RunTimeException的异常。
简而言之:就是我们用事务注解后,只能在当前@Transactional注解的方法里面try-catch,调用方法中一律不能捕获异常,否则事务还是会无效。

所以@Transactional注解无效解决方案有三:
1.在最外层执行方法中try-catch内throw RunTimeException。

2.在方法上throws异常

3.手动回滚

关注公众号,一起进步,一起成长。

SpringBoot中级篇-事务@Transactional注解无效相关推荐

  1. 面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景

    一.Spring事务管理的两种方式 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚 ...

  2. 事务 Transactional注解

    前言 事务:4种事务特性,5种隔离级别,7种传播行为 一.什么是事务? 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务的特性(4种) 原子性 (atomici ...

  3. Spring声明式事务@Transactional 注解参数详解

    @Transactional注解中常用参数说明 参数名称 功能描述 readOnly 该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false.例如:@ ...

  4. springBoot方法上面添加@Transactional注解与类上面添加@Transactional注解的区别

    @Transactionalpublic void updateData(){aService.updateA();//更新A表bService.updateB();//更新B表cService.up ...

  5. SpringBoot配置类替代@Transactional注解实现事务的控制

    package com.example.zcw.config;import org.aspectj.lang.annotation.Aspect; import org.springframework ...

  6. Spring异步Async和事务Transactional注解

    Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效.下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它们之间的 ...

  7. Spring MVC学习总结(18)——SpringMVC事务Transactional注解使用总结

    一.事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: @Transactional  public class TestServiceBean ...

  8. @Transactional注解的失效场景

    @Transactional注解的失效场景 引言 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败.使用@Tran ...

  9. Java注解Target、Retention、Inherited、Documented的作用简述,以@Transactional注解为例(处女座总结)

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 通过本篇,你将学会@Target.@Retention.@Inherited.@Documented注解的含义,以及他们的使用场景, ...

  10. @Transactional注解事务不回滚不起作用无效

    @Transactional注解事务不回滚不起作用无效 以下内容均来自http://blog.csdn.net/u011410529/article/details/54287307 转载 这几天在项 ...

最新文章

  1. 【Python】解决print不能立即打印的问题
  2. metasploit快速入门(二)收集信息
  3. SaaS系统给企业带来了哪些优势
  4. SqlBulkCopy导入大数据
  5. 利用pgAgent创建定时任务
  6. dojochina ExtJS视频解压密码
  7. 贝叶斯方法学习笔记(一)
  8. 属于计算机网络资源子网的,属于计算机网络的资源子网.pdf
  9. MPB:北林袁峥嵘组-​16S扩增子分析中常用软件及数据库应用现状
  10. 有关找共享单车那些事
  11. c语言程序仪表称重编程,液体原料自动称重配料系统(软件设计)本科毕业设计(论文).doc...
  12. 简述https的几种加密方式
  13. arcgis加载项双击没反应
  14. 打开单片机世界的大门——上位机控制下位机实例详解
  15. activiti工作流学习(二)
  16. 迅速提高产品用户体验、交互、界面设计的几个绝妙方法
  17. Sublimenbsp;Textnbsp;2nbsp;快键健
  18. ssm毕设项目基于框架的众筹管理系统f5244(java+VUE+Mybatis+Maven+Mysql+sprnig)
  19. 数学知识 泰勒展开式
  20. 2023年数据分析职业前景怎么样?

热门文章

  1. 深入解读Linux进程调度Schedule
  2. 关于JM8.6中MAX_LIST_SIZE值的选取
  3. Java的GUI学习
  4. Java的arrays运用
  5. spring boot中问题总结
  6. 统计某个字符串出现的次数
  7. 高翔视觉SLAM十四讲:第三讲中plotTrajectory.cpp怎么运行
  8. android 输入支付密码错误,Android 支付宝支付密码输入界面
  9. dram和nand哪个难生产_终于有人说清楚了什么是DRAM、什么是NAND Flash
  10. python静态地图_Matplotlib Toolkits:地图绘制工具