解決Transactional註解不回滾

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

解決Transactional註解不回滾

1. 檢查你方法是否是public的。html

2. 你的異常類型是否是unchecked異常。空指針異常是unchecked異常
若是我想check異常也想回滾怎麼辦,註解上面寫明異常類型便可。mysql

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

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

另外 若是已經在service中進行了try catch 操做 因爲已經被抓獲異常 故事務也不會回滾sql

3. 數據庫引擎要支持事務,若是是mysql,注意表要使用支持事務的引擎,好比innodb,若是是myisam,事務是不起做用的。數據庫

4. 是否開啓了對註解的解析spa

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

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

<context:component-scan base-package="org.test" ></context:component-scan>
相關文章
相關標籤/搜索