用spring测试框架测试Mysql数据库时务务无法回滚

用spring测试框架测试Mysql数据库时事务无法回滚问题描述:????? 在做DAO层得的成单元测试时,测试类XXXDAOI

用spring测试框架测试Mysql数据库时事务无法回滚

问题描述:

????? 在做DAO层得的成单元测试时,测试类XXXDAOIntegrationTest 继承了spring的测试基类AbstractTransactionalJUnit4SpringContextTests, 测试时事务没有正常回滚.

解决方案:

??? 首先排查代码没有问题. 最后发现是建立数据库表时, 没有指定表的引擎. 而Mysql5.x在linux下的默认引擎是MyISAM, 而不是期望的InnoDB, 所以建立数据库表时如果没有指定引擎, 那么表的引擎MyISAM, 从而导致不支持事务. 解决办法是把所有的表的引擎改为InnoDB后, 事务正常回滚了.