Spring的@Transactional事務注意事項


1、@Transactional應該放在方法級別,不需要使用事務的方法,就不要放置事務,
2、查詢方法聲明不要事務,否則對性能是有影響的。
3、對同一個類里的方法調用, @Transactional無效
內部方法使用this.方式調用,沒有通過spring獲取調用,無法AOP
解決方法:通過ApplicationContext獲取bean的方式進行調用。
4、@Transactional注解方法被外部其他類調用才有效,所以一定要public,
在 protected、private或package-visible方法上使用 @Transactional 注解,不報錯,但事務無效。

* 拋出受查異常XXXException,事務會回滾。
* 拋出運行時異常NullPointerException,事務會回滾。
* Quartz同步任務,execute直接調用@Transactional方法,可回滾;間接調用,不會回滾。(參見3)
* Quartz異步任務,execute直接調用@Transactional方法,可回滾;間接調用,不會回滾。(參見3)
* 在controller中加上@Transactional,不會回滾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM