jiangjixiangjava
2019-01-09 16:06
采纳率: 71.4%
浏览 3.7k
已采纳

@Transactional想让部分方法回滚

@Override
@Transactional(rollbackFor = CommonException.class, propagation = Propagation.REQUIRED)
public String syncSupplier(String ployStr) {
//同步供应商银行信息
A();
//同步供应商个人信息
B();
}
} catch (Exception e) {
String remark = e.getMessage();
//记录错误插入日志表
C(remark);
throw new CommonException(e.getMessage());
}
return new SupplierResponseDTO("1", "success").toString();
}

    可是这样会会回滚A、B、C方法??怎么只让AB回滚,C能插入数据到数据库
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • jiangjixiangjava 2019-01-09 16:15
    已采纳

    finally {
    C();
    }
    这样就行了 哈哈哈哈

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • LiShon1111 2019-01-09 21:07

    抽出一个子方法,
    @Transactional
    syncSupplierAB(..) {
    //同步供应商银行信息
    A();
    //同步供应商个人信息
    B();
    }

    public String syncSupplier(String ployStr) {
    syncSupplierAB();
    }
    } catch (Exception e) {
    String remark = e.getMessage();
    //记录错误插入日志表
    C(remark);
    throw new CommonException(e.getMessage());
    }
    return new SupplierResponseDTO("1", "success").toString();
    }

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题