1. 程式人生 > >解決Transactional註解不回滾

解決Transactional註解不回滾

參考:https://www.cnblogs.com/xiaohan666/p/9272581.html

解決Transactional註解不回滾

1. 檢查你方法是不是public的。

2. 你的異常型別是不是unchecked異常。空指標異常是unchecked異常
如果我想check異常也想回滾怎麼辦,註解上面寫明異常型別即可。

@Transactional(rollbackFor={Exception.class.RuntimeException.class})

類似的還有norollbackFor,自定義不回滾的異常。

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

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

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

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

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

<context:component-scan base-package="org.test" ></context