UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only解決辦法


引發原因:當前類中使用@Transactional注解,當前類中的一個方法內的try catch內調用了來自兩個服務類的中的兩個方法,

方法1正常運行,但是方法2拋出異常,此時因為當前類中有@Transactional注解,所以方法1也需要回滾,但是兩個方法都同在

一個try catch 內,所以也無法回滾,這時拋出異常UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only。

解決辦法:用另外一個類且有@Transactional注解,將兩個方法封裝成同一個方法3,此時兩個方法在同一個事物中,再調用方法3時,方法內其中一個方法

拋出異常,另一個方法也能夠正常回滾。

示意圖如下:

 

 


免責聲明!

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



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