@Transactional 失效场景

一、检查你方法是否是public的
二、你的异常类型是否是unchecked异常 
若是我想check异常也想回滚怎么办,注解上面写明异常类型便可
@Transactional(rollbackFor=Exception.class) 1
相似的还有norollbackFor,自定义不回滚的异常
三、数据库引擎要支持事务,若是是MySQL,注意表要使用支持事务的引擎,好比innodb,若是是myisam,事务是不起做用的
四、是否开启了对注解的解析
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
五、spring是否扫描到你这个包,以下是扫描到org.test下面的包
<context:component-scan base-package="org.test" ></context:component-scan>1
六、检查是否是同一个类中的方法调用(如a方法调用同一个类中的b方法) 
七、异常是否是被你catch住了spring

相关文章
相关标签/搜索