今天进行了spring整合hibernate,进行事务管理。出现了事务不回滚。检查了好多遍,业务逻辑和配置文件都没有出错,但是事务依旧不回滚,很是郁闷。在网上查了很多资料。转载一位博主的文章,挺不错。
http://blog.csdn.net/u011622226/article/details/43985929
1.你自己捕获异常了,没有抛出去让Spring知道。
2.没有正确配置Spring中的事务。
3.Service层次问题,即一些逻辑问题。
4.MySQL不支持事务。
那就是第四个原因出错了。但是我查了自己的MySQL确实默认的引擎是InnoDB。很纠结。后来才发现是hibernate.cfg.xml文件的原因。<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>建表时表的引擎为MyISAM。
改为org.hibernate.dialect.MySQL5InnoDBDialect时,引擎为InnoDB。问题顺利解决。