更新時間:2022-09-21 09:31:13 來源:動力節點 瀏覽2818次
在Java學習中大家會學到Spring教程,那么,Spring手動回滾事務的方式有哪些?動力節點小編來告訴大家。
在service層方法的catch語句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();語句,手動回滾,這樣上層就無需去處理異常(現在項目的做法)
例如service層處理事務,那么service中的方法中不做異常捕獲,或者在catch語句中最后增加throw new RuntimeException()語句,以便讓aop捕獲異常再去回滾,并且在service上層(webservice客戶端,view層action)要繼續捕獲這個異常并處理
//普通繳費
@Transactional
public String commonMoney(Receipt rpt,Moneyrecord mors){
rpt.setState(1);
int a=dao.insert(rpt);
if(a<=0) return"繳費失敗";
mors.setPric(rpt.getPic());
mors.setExid(rpt.getPid());
mors.setState(1);
boolean tf=mrs.custom(mors);
if(!tf){
//事務回滾
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return"余額不足";
}
return "OK";
}
設置回滾點進行回滾事務
//設置回滾點,
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
//回滾到savePoint事務點
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
通過上述介紹,相信大家對Spring手動回滾事務的方式已經有所了解,大家如果想了解更多相關知識,不妨來關注一下本站的Java在線學習技術文檔,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習