spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
生活随笔
收集整理的這篇文章主要介紹了
spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如上:
當我們需要在事務控制的service層類中使用try catch 去捕獲異常后,就會使事務控制失效,因為該類的異常并沒有拋出,就不是觸發事務管理機制。怎樣才能即使用try catch去捕獲異常,而又讓出現異常后spring回滾呢,這里就要用到,在service層方法的catch語句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();語句,手動回滾,這樣上層就無需去處理異常了
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();其實像第一種try catch這種把整個包裹起來,這種業務方法也就等于脫離了spring事務的管理,因為沒有任何異常會從業務方法中拋出,全被捕獲并“吞掉”,導致spring異常拋出觸發事務回滾策略失效。,完美解決問題。并且能夠使該方法執行完。
總結
以上是生活随笔為你收集整理的spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces 552C Vany
- 下一篇: dnf无限卡连接服务器,不用进DNF游戏