spring 事務控制 設置手動回滾 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();


 1 //假設這是一個service類的片段
 2 
 3 try{ 
 4     //出現異常
 5 } catch (Exception e) {
 6             e.printStackTrace();
 7            //設置手動回滾
 8             TransactionAspectSupport.currentTransactionStatus()
 9                     .setRollbackOnly();
10         }
11 //此時return語句能夠執行
12 return  xxx;

如上:

  當我們需要在事務控制的service層類中使用try catch 去捕獲異常后,就會使事務控制失效,因為該類的異常並沒有拋出,就不是觸發事務管理機制。怎樣才能即使用try catch去捕獲異常,而又讓出現異常后spring回滾呢,這里就要用到

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

完美解決問題。並且能夠使該方法執行完。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM