Transaction marked as rollback-only異常

一、當整個方法中每一個子方法沒報錯時,整個方法執行完才提交事務,若是某個子方法有異常,spring將該事務標誌爲rollback only,在被標記後和將該異常拋出前,想去執行數據庫的話是不容許的spring

二、此時即便沒有將異常拋出,可是若是繼續去操做數據庫的話,同樣是會報Transaction rolled back because it has been marked as rollback-only的異常,假若就是想將該異常記錄到數據庫該怎麼辦?從新啓動一個獨立事務去處理。數據庫

三、若是這個子方法沒有將異常往上整個方法拋出或整個方法未往上拋出,那麼該異常就不會觸發事務進行回滾,事務就會在整個方法執行完後就會提交,這時就會形成Transaction rolled back because it has been marked as rollback-only的異常,若是咱們往上拋了改異常,spring就會獲取異常,並執行回滾。spa

相關文章
相關標籤/搜索