为什么加了@Transactional注解,事务没有回滚?
点击上方蓝色“程序猿DD”,选择“设为星标”
回复“资源”获取独家整理的学习资料!
在前天的《事务管理入门》一文发布之后,有读者联系说根据文章尝试,加了@Transactional
注解之后,事务并没有回滚。经过一顿沟通排查之后,找到了原因,在此记录一下,给后面如果碰到类似问题的童鞋一个参考。
问题原因
在前文的描述中,我漏了一个细节,其实在示例代码中,与之前拿的基础例子在配置中有一个关键属性没有提到,就是下面这个配置:
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
这里的spring.jpa.database-platform
配置主要用来设置hibernate使用的方言。这里特地采用了MySQL5InnoDBDialect
,主要为了保障在使用Spring Data JPA时候,Hibernate自动创建表的时候使用InnoDB存储引擎,不然就会以默认存储引擎MyISAM来建表,而MyISAM存储引擎是没有事务的。
所以,如果你的事务没有生效,那么可以看看创建的表,是不是使用了MyISAM存储引擎,如果是的话,那就是这个原因了!
除此之外,对于事务没有生效的可能还很多,比如,在同一个类中定义又调用等。这里就不具体展开了,欢迎读者留言分享你碰到的事务失效的情况!
往期推荐
王者归来:分布式调度解决方案 ElasticJob 重启!
面试:说说啥是一致性哈希算法?
Spring Boot 2.x基础教程:事务管理入门
Java 语言中十大“坑爹”功能!
说实话,Intellij IDEA 自带的 Vim 插件真心不错!
关注下方公众号,回复“2020面试”
免费获取2020年最新面试题
一起进大厂,每日学干货
关注它,不迷路
为什么加了@Transactional注解,事务没有回滚?相关推荐
- @Transactional注解事务不回滚不起作用无效
@Transactional注解事务不回滚不起作用无效 以下内容均来自http://blog.csdn.net/u011410529/article/details/54287307 转载 这几天在项 ...
- spring@Transactional注解事务不回滚不起作用无效的问题处理
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性 先来了解一下@Transactio ...
- Spring 事务方法与非事务方法相互调用 @Transactional 注解失效不回滚?
写这篇文章的初衷呢就是最近遇到了一个Spring事务的大坑.与其说是坑,还不如说是自己事务这块儿太薄弱导致的(自嘲下). 项目环境 Spring Boot 下面开始问题描述,发生的过程有点长,想直接看 ...
- sqlsever回滚操作_sqlserver事务与回滚
如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的.尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围.如下面的语句,一着 ...
- 单元测试JunitTest加@Transactional事务自动回滚
问题 在测试事务传播行为的时候,使用单位测试加了@Transactional,一开始是正常,后面出现了异常,即使没有报错的情况下,事务也会自动回滚 代码 @RunWith(SpringRunner.c ...
- SpringBoot 异常回滚 事务的使用___Springboot @Transactional 事务不回滚
Springboot中事务的使用: 1.启动类加上@EnableTransactionManagement注解,开启事务支持(其实默认是开启的). 2.在使用事务的public(只有public支持事 ...
- 为什么catch了异常,但事务还是回滚了?
前几天我发了这篇文章<我来出个题:这个事务会不会回滚?>(https://blog.didispace.com/will-this-transcation-rollback/) 得到了很多 ...
- java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxx ...
- 每日一博 - 常见的Spring事务失效事务不回滚案例集锦
文章目录 事务不生效 方法内部调用 修复方法一 : [新加一个Service方法] 修复方法二:[在该Service类中注入自己] 修复方法三:[通过AopContent类]<---- 推荐 访 ...
最新文章
- 使用Linux服务器搭建个人深度学习环境
- MySQL MGR与Galera性能测试
- redis linux无法启动服务,CentOS7 下redis不能开机启动,求解?
- eclipse中svn的各种状态图标详解
- web前端新手入门教程:Web 框架的架构模式探讨
- 消息中间件--RabbitMQ --- 消费端限流 -- 非常重要
- 第二轮冲次会议第三次
- vs2017创建外部css,webpack - 从生成的Microsoft SPA模板VS2017 webpack中删除特定供应商css - 堆栈内存溢出...
- java对象属性的作用域类型_java 对象和类
- Proxmark3 easy gui 5.13 版本 编译日期2019-4-17 冰人4月份最新固件
- JVM调优总结(转)
- 高并发大流量,大麦抢票的技术涅槃之路
- 数据库事务(Transaction)详解
- 宏源股指期货期权早评:暂未脱离震荡
- Hive窗口函数之preceding and following
- 计算机软件实习每日学习打卡(5)20201218
- 这个对老爸老妈有好处
- 怎样把普洱熟茶泡得更好喝?
- 银河移民PHP面试,移民香港,我真的“后悔死了”
- 现代微服务拆分与设计
热门文章
- python3 字符串替换 replace translate re.sub
- linux shell grep 搜索数据 赋值变量 没有换行符
- linux ip_conntrack 连接满导致网络丢包
- linux bashrc与profile的区别
- shell错误 sed: can't read : No such file or directory
- python3 遍历列表得到序号索引和值
- MFC ComboBox
- Java 中的关键字 final
- Linux内核的namespace机制分析
- 远程链接oracle 12514,数据库建好后,本地连接正常,远程连接ORA-12514错误