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,快取的邏...