zoukankan      html  css  js  c++  java
  • 记一次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,这个时候 外层事务  最终捕获异常后 正常结束了所以就抛出了此异常
  • 相关阅读:
    request:getParameter和getAttribute区别
    JSP登录页面大小
    单例模式详情
    关于HTML的总结
    遍历HashMap的四种方法
    三层开发原则
    java日期
    oracle6
    tomcat
    Linux命令
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/14295029.html
Copyright © 2011-2022 走看看