问题描述
通过Spring MVC + MySQL配置事务,事务配置没有问题,删除数据之后,抛出异常,但是事务没有回滚。
解决办法
最后发现原来是MySQL表的引擎为:MyISAM,导致不支持事务。修改对应建表语句,指定引擎为
1 | ENGINE=InnoDB DEFAULT CHARSET=utf8; |
原因验证
可以通过下面方式来验证,是否是这个原因导致事务不会滚。
在Navicat Premium工具中,右击对应的表,进入Object Information,进入DDL标签:
如果发现对应的ENGINE为MyISAM,则表示这种引擎不支持事务。