为了账号安全,请及时绑定邮箱和手机立即绑定

事务无法回滚

@Transactionale为什么事务无法回滚  【已经排查mysql  支持事务】

正在回答

4 回答

新增楼上这个配置之后需要把你原来的表先删除的,因为原来的表创建的数据引擎不是InnoDB

0 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5ab8f7ce0001d55c06460341.jpg


如果已经建表了, 那用过Navicat等工具修改即可如:

https://img1.sycdn.imooc.com//5ab8f7ff000189cb07480322.jpg

1 回复 有任何疑惑可以回复我~

MySQL的数据引擎InnoDB支持事务,而MYISAM不支持事务,所以如果生成的表是MYISAM它就不会滚,在配置文件中加入如下配置,让生成的表变成InnoDB的

spring.jpa.hibernate.naming.physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect

0 回复 有任何疑惑可以回复我~

mysql支持事务,mysql创建表的时候会默认选择engine, 通过show create table 表名来查看该表是否选择了engine 为InnoDB; 如果不是,修改它的engine: alter table 表名称 ENGINE = InnoDB,重启mysql服务 就看到支持事务回滚了

2 回复 有任何疑惑可以回复我~
#1

K丶k 提问者

已经是 innodb autocommit也=0
2018-03-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
2小时学会Spring Boot
  • 参与学习       151586    人
  • 解答问题       1079    个

Spring Boot入门视频教程,你将学会使用Spring Boot快速构建应用程序

进入课程

事务无法回滚

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信