關(guān)于事務(wù)的一點思考-創(chuàng)新互聯(lián)

Transaction rolled back because it has been marked as rollback-only

沽源網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),沽源網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為沽源千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的沽源做網(wǎng)站的公司定做!

在使用事務(wù)的時候,代碼里會爆出上面的錯誤

什么原因呢?
方法A調(diào)用了方法B。
且方法A和方法B上都啟動了事務(wù)。(都標注了@Transactional)
方法B拋出了異常。
方法A收到B的異常后直接吃掉了,沒有繼續(xù)拋出。

問題就出現(xiàn)在異常上
在上面的默認情況下,Spring 是讓方法AB 公用一個事務(wù)。
但是Spring 已經(jīng)感知到了方法B的異常,然后在方法A里面,代碼邏輯吃掉了異常,當A結(jié)束的時候,Spring并沒有感知到A的異常,就準備提交事務(wù)。這就沖突了。
從A上說方法一切正常,可以提交!
從B上說已經(jīng)拋出了異常,得回滾!

知道了原因,解決這個異常那就簡單了

  • 如果希望整個流程都能正常提交:那就在b里面把異常吃掉,不要讓Spring感知到異常。
  • 如果希望整個流程直接回滾:那就不要在A里吃掉異常,讓Spring感知到異常。

那還有一個問題,如果就按照最原始的寫法,拋出了Transaction rolled back because it has been marked as rollback-only這個異常,那整個事務(wù)到底是什么情況呢?是回滾了,還是正常提交了?

答案是回滾了!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站名稱:關(guān)于事務(wù)的一點思考-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article0/dsiooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、App設(shè)計、靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、虛擬主機、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)