記一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only異常


 
        
@Transactional(rollbackFor = Exception.class)

@Override
public DubboResult<Boolean> productAddOrModify(MallProductAddModifyReq req) {

log.info("權益商城商品添加,請求參數={}", req);

try {


boolean resutl1 = productService.handleIntegralProduct(req);
boolean result2 = productStaticService.handleProductIntegralStatic(req);
boolean result3 = skuService.handleIntegralSku(req);

boolean result = resutl1 && result2 && result3;
log.info("saleId={}控制台新增或修改商品={},result={}", req.getSourceCode(), result);
return DubboResult.ofSuccess(result);
} catch (BizException e) {
return DubboResult.ofFailure("-1",e.getMessage());
}
}

上述異常引起的原因是各個業務方法方法頭部都有
@Transactional(rollbackFor = Exception.class)標識,他們在拋出異常時,被spring標記為 rollback-only,這個時候 外層事務  最終捕獲異常后 正常結束了所以就拋出了此異常


免責聲明!

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



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