Spring事務(wù)什么時候會失效

Spring事務(wù)什么時候會失效?

Spring事務(wù)的原理是AOP,進行了切面增強,那么失效的根本原因是這個AOP不起作用了!常見情況有如下幾種

1、發(fā)生自調(diào)用,類里面使用this調(diào)用本類的方法(this通常省略),此時這個this對象不是代理類,而是 UserService對象本身!

解決方法很簡單,讓那個this變成UserService的代理類即可!

2、方法不是public的


@Transactional 只能用于public 的方法上,否則事務(wù)不會失效,如果要用在非public 方法上,可以開啟 Aspectj 代理模式。


3、數(shù)據(jù)庫不支持事務(wù)

4、沒有被spring管理

5、異常被吃掉,事務(wù)不會回滾(或者拋出的異常沒有被定義,默認(rèn)為RuntimeException)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容