解決Transactional註解不回滾

2021-09-02 19:43:54 字數 694 閱讀 1083

1. 檢查你方法是不是public的,在公有方法後是否throws exception。

@responsebody

@transactional(isolation = isolation.serializable)

public mapchangereportcategory(

@requestbody ykreportcategoryvo ykreportcategoryvo) throws exception

2. 你的異常型別是不是unchecked異常。空指標異常是unchecked異常

如果我想check異常也想回滾怎麼辦,註解上面寫明異常型別即可。

@transactional(rollbackfor=)
類似的還有norollbackfor,自定義不回滾的異常。

另外 如果已經在service中進行了try catch 操作 由於已經被抓獲異常 故事務也不會回滾

3. 資料庫引擎要支援事務,如果是mysql,注意表要使用支援事務的引擎,比如innodb,如果是myisam,事務是不起作用的。

4. 是否開啟了對註解的解析

5. spring是否掃瞄到你這個包,如下是掃瞄到org.test下面的包

Transactional事物失效解決

這麼乙個類 public class foopublic void baz 可能會有不少人會跟我一樣,覺得上面這種方式呼叫 baz 方法時,bar 上的 transactional註解還是會起作用的,即bar 在被呼叫時,將會開啟事務。但是,當實際操作之後,你會發現,這樣並不會開啟新的事務?為什麼呢...

Transactional 失效問題 解決記錄

我們大家都知道,需要控制事務時,需要在服務層使用 transactional rollbackfor exception.class 來控制事務,保證方法內的的多個 dao操作同時成功或失敗 今天就遇到了問題,方法內的資料庫操作未受到事務控制,debug時,方法沒走完資料就落庫了,這顯然是不對的 問...

Transactional註解初見

之前一直使用宣告式事務,切面程式設計的配置方式讓程式設計者忘記了事務的存在,一旦離開,發現這個事務還是蠻重要的 public inte ce userservice transactional public class userserviceimpl implements userservice p...