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

关于使用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了,没有具体代码和具体场景,解释不了

    评论

报告相同问题?