用spring測試框架測試Mysql數據庫時事務無法回滾

問題描述:

      在做DAO層得的成單元測試時,測試類XXXDAOIntegrationTest 繼承了spring的測試基類AbstractTransactionalJUnit4SpringContextTests, 測試時事務沒有正常回滾.

 

解決方案:

    首先排查代碼沒有問題. 最後發現是建立數據庫表時, 沒有指定表的引擎. Mysql5.xlinux下的默認引擎是MyISAM, 而不是期望的InnoDB, 所以建立數據庫表時如果沒有指定引擎, 那麼表的引擎MyISAM, 從而導致不支持事務. 解決辦法是把所有的表的引擎改爲InnoDB, 事務正常回滾了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章