最近試了試spring的回滾功能,根據網上的教程配置怎麼都不好使,遂尋找答案,
網上的答案都是這麼講的:
1. 檢查你方法是不是public的。
2. 你的異常型別是不是unchecked異常。
如果我想check異常也想回滾怎麼辦,註解上面寫明異常型別即可。
@transactional(rollbackfor=exception.class)
類似的還有norollbackfor,自定義不回滾的異常。
3. 資料庫引擎要支援事務,如果是mysql,注意表要使用支援事務的引擎,比如innodb,如果是myisam,事務是不起作用的。
4. 是否開啟了對註解的解析
5. spring是否掃瞄到你這個包,如下是掃瞄到org.test下面的包
我都檢查了,但就是不回滾,再找,終於發現了問題在哪兒.
最主要的是springmvc的配置檔案,不能配置重複掃瞄service,
可以這樣配置
,也可以
直接過濾掉service.
1.2.
Transactional註解初見
之前一直使用宣告式事務,切面程式設計的配置方式讓程式設計者忘記了事務的存在,一旦離開,發現這個事務還是蠻重要的 public inte ce userservice transactional public class userserviceimpl implements userservice p...
Transactional註解詳解
預設遇到throw new runtimeexception 會回滾 需要捕獲的throw new exception 不會回滾 指定回滾 transactional rollbackfor exception.class public void methodname 指定不回滾 transacti...
Transactional註解用法
1.事務隔離級別 隔離級別是指若干個併發的事務之間的隔離程度。transactiondefinition 介面中定義了五個表示隔離級別的常量 2.事務傳播行為 所謂事務的傳播行為是指,如果在開始當前事務之前,乙個事務上下文已經存在,此時有若干選項可以指定乙個事務性方法的執行行為。在transacti...