pring預設情況下會對執行期例外(runtimeexception)進行事務回滾。這個例外是unchecked
如果遇到checked意外就不回滾。
如何改變預設規則:
1 讓checked例外也回滾:在整個方法前加上 @transactional(rollbackfor=exception.class)
2 讓unchecked例外不回滾: @transactional(notrollbackfor=runtimeexception.class)
3 不需要事務管理的(只查詢的)方法:@transactional(propagation=propagation.not_supported)
注意: 如果異常被try{}catch{}了,事務就不回滾了,如果想讓事務回滾必須再往外拋try{}catch{throw exception}。
spring——@transactional事務不管理jdbc,所以要自己把jdbc事務回滾。
Spring 事務 事務控制
0 註解 autowire 自動注入 url url b 1 spring專案中事務手動回滾 b transactionaspectsupport.currenttransactionstatus setrollbackonly 或者丟擲異常 transactional rollbackfor pu...
spring 事務控制
事務配置 二 在service加try 導致事務不回滾 註明 一般service不要加 try public class userserviceimpl catch exception e 三 解決方案 方法1 在service不加try,方法2 在 catch語句中最後增加throw new ru...
Spring事務控制
用別名方法b代替 逆向 寫入商品明細 param orderid param invoiceamount transactional rollbackfor exception.class 寫入一條資料 用別名方法c代替 正向 寫入商品明細 param orderid param userid pa...