spring中事務不生效原因總結

2022-08-01 22:21:12 字數 804 閱讀 6848

spring的事務不生效原因大概分為如下幾類:

一、在呼叫方法上雖然寫了@transactional,但捕獲了異常卻沒有丟擲

二、在sql語句用寫了truncate table  表(在truncate之前的sql執行完後就回被更新到資料庫中,事務也就不會回滾)。

三、@transactional 註解只能應用到 public 可見度的方法上。 如果應用在protected、private或者 package可見度的方法上,也不會報錯,不過事務設定不會起          作用。

四、事務預設是 runtimeexception才會回滾(使用hibernate框架發生的sql異常spring都會丟擲runtimeexception)。

五、發現在加@transactional 註解下,捕獲了異常不丟擲,事務也回滾了

因為被呼叫的方法必定有@transactional 並且異常沒有自己捕獲,spring事務就會記錄下該異常即使外層不丟擲也會回滾。

進入manager.guarcalc()方法

git ignore不生效原因

有時候我們配置了git ignore 發現不生效,每次提交的時候,有些加入到了ignore的檔案沒有過濾掉,這是因為我們最開始將那些應該過濾的檔案加入到了版本控制。所以解決辦法就是把它們從版本控制移除。我們需要先把本地快取刪除,然後再更新一下ignore檔案。在我們的專案目錄,開啟git bash,...

SpringBoot事務不生效

一。1.mysql表必須支援事務 引擎為innodb 2.springboot啟動事務 enabletransactionmanagement 3.方法上加註解 transactional 預設只對runtimeexception起作用,可修改 4.方法必須為public修飾 5.同類中事務的方法不...

Cacheable註解不生效原因

cacheable註解中 乙個方法a調同乙個類裡的另乙個有快取註解的方法b,這樣是不走快取的。例如在同乙個service裡面兩個方法的呼叫,快取是不生效的 解決方案 1.不使用註解的方式,直接取 ehcache 的 cachemanger 物件,把需要快取的資料放到裡面,類似於使用 map,快取的邏...