1.首先是考虑是否是数据库引擎的问题
因为我用的mysql,数据库的引擎是MyISAM,修改为InooDB。代码:
#看你的mysql现在已提供什么存储引擎:
mysql> show engines;
#看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%';
#修改默认引擎
vim /etc/my.cnf
#没有my.cnf去复制
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
#添加
default-storage-engine=InnoDB/MyISAM
#重启数据库服务:
service mysqld restart
修改好后测试,依然无效
2.检查配置
3.看异常是什么类型
Spring默认情况下会对运行期异常(RunTimeException)进行事务回滚。这个异常是unchecked,如果遇到checked意外就不回滚。
我的问题就出在这里,因为我自己定义了一个LogicException,处理办法: