日期:2014-05-16 浏览次数:20434 次
问题描述:
????? 在做DAO层得的成单元测试时,测试类XXXDAOIntegrationTest 继承了spring的测试基类AbstractTransactionalJUnit4SpringContextTests, 测试时事务没有正常回滚.
解决方案:
??? 首先排查代码没有问题. 最后发现是建立数据库表时, 没有指定表的引擎. 而Mysql5.x在linux下的默认引擎是MyISAM, 而不是期望的InnoDB, 所以建立数据库表时如果没有指定引擎, 那么表的引擎MyISAM, 从而导致不支持事务. 解决办法是把所有的表的引擎改为InnoDB后, 事务正常回滚了.