在使用mybatis plus的时候发现选择数据源注解@DS("***")不起作用

这是一个小问题,但是这个小问题导致我这一部分逻辑无法实现

@PostMapping(value = "/****/***/***/{project}")
@DS("#project")
@Transitional
    public Object updateReadedMessage(@PathVariable("project") Long project, @RequestBody JSONObject requestBody){
         ReceivedDocumentClass receivedDocumentClass = new ReceivedDocumentClass();
        Long deletedId = 0L;
        try {
            receivedDocumentClass.generateInformation(requestBody);
        }catch (Exception e){
            throw new MyException(ErrorCode.JSONOBJECT_CONVERT_INTO_CLASS_FORMAT_FAILED);
        }
        try {
            receivedDocumentService.insertReceivedDocRecord(projectId,receivedDocumentClass);
            deletedId = bufferDocService.deleteBufferDocById(projectId, receivedDocumentClass.getPkReceivedDocId());
        }catch (Exception e) {
            System.out.println(e);
        }
        return deletedId;
    }

在这里我们可以看到我们通过@DS的注解的配置可以选择使用的数据库。我上面有个调用了这个方法(基本一样的),就连到了后面debug的时候我都是复制粘贴的同一个方法。但是发现上面的方法可以宣导我指定的数据库,但是这个方法就不行。很难受,这个就是@DS没有起作用的问题

这里呢,我用了个@Transitional的注解是为了希望两个数据库的操作只要有一个出现了异常的时候就可以数据库回滚使得不会出现数据库不一致的问题的出现。

但是在后来Debug的时候发现,就算是抛了异常,下面一个delete的数据库操作还是会执行的。这点我没有解决。

但是在这里我把@Transitional的注解删除了以后,发现@DS的注解失效的问题就解决了,这里的知识还是不够深入,但是问题解决了,希望在日后有机会深入了解的时候补充上为什么这个地方的@Transitional会出现这样的问题的解释把

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值