smile_life_ 2020-12-23 10:07 采纳率: 40%
浏览 128

关于使用spring的@Transactional注解,部分事务不回滚问题

问题:根据我对@Transactional的理解,它默认的传播模式是调用方如果存在事务,那么就沿用事务,没有则开启。那么也就是说以下中autoDispatchJobs有表明事务注解,而该autoDispatchJobs中调用的splitJobsTo方法虽然单独也标有注解,但是它还是会沿用autoDispatchJobs的注解是不是?只要发生运行时异常之类的都会回滚吧。但我发现某个环节没有回滚

//接口实现类,以下是该类部分代码
@Override
	@Transactional
	public void autoDispatchJobs(Long shipperOrderId) {

        //1、调用其他微服务查询某些信息

        //2、调用拆单接口
        this.splitJobsTo(..省略参数)
}

//拆单接口
  @Override
	@Transactional
	public void splitJobsTo (Long shipperOrderId, Long dispatchId, Integer splitType) {
        //创建地址
        this.createAddress(..省略参数);

        //查询。。。

        //创建订单等等
}

//创建地址,该方法只是该类写的公用方法
@Transactional
public ShipperOrderAddr createAddress(){
    //执行mybatisplus insert() 方法
}
  • 写回答

3条回答 默认 最新

  • 默默a20 2020-12-23 10:34
    关注

    是不是你try catch了,没有具体代码和具体场景,解释不了

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度