事务注解@Transactional不起作用的原因总结
一、事务配置正确的前提下,出现事务不起作用的原因:
异常被try{}catch(){}捕捉到了,有异常就不会回滚。
使用@Transactional注解注意事项:
配置
当本类的使用@Transactional的方法被本类的其它没有开启事务的方法调用时,不会开启事务。使用@Transactional的方法被其它类调用时,按照正常的事务传播行为规则开启事务
二、数据库引擎要支持事务
如果是mysql,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的
是否开启了对注解的解析
配置文件必须加<tx:annotation-driven />,否则不解析@Transactional