spring事務不起作用的原因

2021-09-24 14:08:46 字數 760 閱讀 3311

1.@transactional加在非public方法上,這個其實idea就能規避了,有語法檢查;

2.非@transactional註解方法呼叫同類中使用@transactional註解的方法,不生效,原因是事務管理用到了動態**,原理自己去查;

偽**:

public void test() 

@transactional

public void tt()});

int i = 1 / 0;

}

此時外部呼叫test()方法,發生異常但資料仍然提交成功;

3.呼叫方將異常捕獲,事務不回滾;

public void tt()});

int i = 1 / 0;

}

@transactional

public void t() catch (exception e)

}

解決方法就是:

1)不捕獲異常,通過全域性捕獲等方式

2)捕獲後再次丟擲異常

3)設定當前事務回滾transactionaspectsupport.currenttransactionstatus().setrollbackonly();

4)業務層也加@transactional註解,這時會發生異常(transaction rolled back because it has been marked as rollback-only),這裡涉及到事務傳播了,不具體說

spring事務控制不起作用(MYSQL)

color red blog遷移至 color url size medium 專案框架就是標準的ssh,測試發現不能實現資料回滾,花了大半天的時間去檢查配置和程式均沒有問題,主要是從以下幾方面去查詢問題 spring 事務配置 巢狀事務 異常是否已經 獲 dao是否強制commit。實在找不到原因...

Spring AOP不起作用原因

一 直接在切面類定義切點 aop切面類裡面的方法全部不支援觸發切面,否則乙個切面函式把自己當做切點就會導致遞迴層層呼叫。aop切面類發出函式呼叫一律不觸發切面,避免兩個切面類相互呼叫迭代請求的情況。二 被 物件兩個切點方法內部呼叫 被spring的aop增強的類,在同乙個類的內部方法呼叫時,其被呼叫...

Lombok不起作用原因

idea搜尋plugins安裝外掛程式lombok。才能實現自動生成 get set 不然一片紅 引入jar包 org.projectlombokgroupid lombokartifactid 1.16.20version providedscope dependency lombok外掛程式是可...