mysql事务回滚

前几天发现程序有个Bug:使用JPA已经设置了回滚,但抛出异常后,提交的事务并没有回滚。

刚开始以为是JPA使用问题,debug了近2个多小时竟然找不到原因。

后来上网查了一下,才发现不是程序问题(坑爹啊,看来自己对mysql还是不熟),是数据库表问题(JPA自动建表)。

原因如下:
mysql建表时如果指定ENGINE=MyISAM,事务是无法回滚的(MyISAM引擎本身不支持事务)。
需要执行:
alter table [tablename] ENGINE=INNODB
指定为INNODB引擎才能支持事务管理。
更新完之后再执行程序,一切恢复正常了。
在这里记录一下,希望对看到的人有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值