Mapper查询语句怎么样会带上租户ID

Blade 未结 1 734
曾远征
曾远征 剑圣 2021-08-21 10:07
悬赏:5

一、该问题的重现步骤是什么?

1. 租户数据源配置

2. 导入接口开发

3.导入数据


二、你期待的结果是什么?实际看到的又是什么?

期待得结果是导入得数据根据租户来入不同得数据库,实际在查询得时候和在add得时候都是用得默认数据库


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

2.8.2

开发环境 windows


四、请提供详细的错误堆栈信息,这很重要。

service类

图片.png

查询语句

图片.png

日志输出SQL语句

图片.png

controller配置

图片.png


五、若有更多详细信息,请在下面提供。

1条回答
  • 2021-08-21 10:10

    你用了Async,进程取不到request,自然也就无法获取租户id了,需要手动调用api切换租户数据源,具体说明见:https://sns.bladex.cn/q-5045.html


    作者追问:2021-08-21 10:36

    切换后的数据源

    图片.png

    结果

    图片.png

    数据源是更换了,但是最终保存的数据

    图片.png

    还是没有更换

    作者追问:2021-08-21 10:40

    是不是在插入数据的时候我要收到把租户ID的值设置上,这样也可以解决问题,但是不知道是不是我没有用上框架的高级功能,有没有可以切换数据源后,mapper的查询、新增等等会自动加上租户ID的方法

    回答: 2021-08-21 11:01

    首先你数据源切换成功,说明没有问题了。

    其次插入的数据租户id不对,还是因为异步没有获取到request,所以不能获取到tenantId来自动插入。

    所以保存前你也要把租户id获取并且设置到bean内才行。

    回答: 2021-08-21 11:02

    框架内的租户id自动拼接以及数据源自动切换,一切都建立在有request可以获取到租户id的场景。

    在异步场景是获取不到的,所以需要手动处理,无法自动处理。

    0 讨论(0)
提交回复