我在学习hibernate的过程中发现,在写一个完整的事务异常处理过程中,我的try语句出错了,但居然没有执行catch语句中的回滚。特意到网上查了一波。
首先说明我使用的是hibernate自动建表。网上说是数据库引擎的问题,但是,我在mysql的配置文件中已经做了
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
show engines;查询数据库的引擎
后来我又查了下表创建时的引擎
show create table t_user;
发现引擎是MyISAM,那这就找到问题所在了。MyISAM是不支持事务的。而且网上说,hibernate自建表的引擎是使用的MyISAM。所以必须修改hibernate的配置文件