SpringMVC事务管理器不起作用

问题描述

通过Spring MVC + MySQL配置事务,事务配置没有问题,删除数据之后,抛出异常,但是事务没有回滚。

解决办法

最后发现原来是MySQL表的引擎为:MyISAM,导致不支持事务。修改对应建表语句,指定引擎为

1
ENGINE=InnoDB DEFAULT CHARSET=utf8;

原因验证

可以通过下面方式来验证,是否是这个原因导致事务不会滚。
在Navicat Premium工具中,右击对应的表,进入Object Information,进入DDL标签:
ENGINE
如果发现对应的ENGINE为MyISAM,则表示这种引擎不支持事务。