事務注解@Transactional不起作用的原因總結
一、事務配置正確的前提下,出現事務不起作用的原因:
異常被try{}catch(){}捕捉到了,有異常就不會回滾。
使用@Transactional注解注意事項:
配置
當本類的使用@Transactional的方法被本類的其它沒有開啟事務的方法調用時,不會開啟事務。使用@Transactional的方法被其它類調用時,按照正常的事務傳播行為規則開啟事務
二、數據庫引擎要支持事務
如果是mysql,注意表要使用支持事務的引擎,比如innodb,如果是myisam,事務是不起作用的
是否開啟了對注解的解析
配置文件必須加<tx:annotation-driven />,否則不解析@Transactional