第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

spring service方法拋出runtimeException但不回滾

spring service方法拋出runtimeException但不回滾

搖曳的薔薇 2019-05-13 09:41:36
定義了一個service:UserService其中有個方法定義如下:@Transactional(propagation=Propagation.REQUIRES_NEW)publicvoidsaveException(Useruser){userDao.save(user);thrownewRuntimeException("異常");}如果我在Controller層直接調(diào)用這個方法,是可以進行回滾的,但如果我把這個方法再包一層,如下:publicvoidsaveInnerException(){Useruser1=newUser();user1.setName("李四");this.saveException(user1);}saveInnerException還是在同一個service中,并且這個方法沒有加事務(wù),這個時候,如果Controller層調(diào)用saveInnerException方法,事務(wù)會進行提交,這個很奇怪,發(fā)生了異常,應(yīng)該回滾才對。我又進行了另外的測試,這次我重新定義了一個service:UserService2,里邊有個非事務(wù)方法,如下:publicvoidtest(){Useruser=newUser();user.setName("李四");userService.saveException(user);}如果Controller調(diào)用UserService2的test方法,這時事務(wù)就會回滾了。同樣是多了一層調(diào)用,結(jié)果為什么不一樣?
查看完整描述

2 回答

?
UYOU

TA貢獻1878條經(jīng)驗 獲得超4個贊

問題出在saveInnerException方法里的this你不信單步調(diào)試跟蹤下,你會發(fā)現(xiàn)this就是個普通實例而不是aop增強過的
                            
查看完整回答
反對 回復(fù) 2019-05-13
  • 2 回答
  • 0 關(guān)注
  • 1658 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號