为什么我忽略不了租户

少吃一顿 已解决

我添加了注解还是忽略不了租户,为什么

回答24

少吃一顿
@超级管理员

我是直接用的mybatis plus 的方法,没用this

超级管理员

service的调用方式 以及代码之类的或者例子提供一下,看上面截图看不出 什么


我们这边测试是正常的:

10:50:05.689 [http-nio-48081-exec-8] INFO  c.j.m.b.s.i.TenantIgnoreDemoServiceImpl - [doUpdateAndInsert,68] - [TenantIgnoreDemo] scene=updateByIdNotTenantId(@TenantIgnore + MP updateById/insert), isIgnore=true, isLowcodeIgnore=true, tenantId=1, purchaseId=222
10:50:05.697 [http-nio-48081-exec-8] DEBUG c.j.m.b.m.P.selectById - [debug,135] - ==>  Preparing: SELECT id, amount, approval_status, create_dept, purchase_date, purchase_no, remark, tenant_id, create_time, update_time, create_user, update_user, is_deleted FROM tbl_purchase WHERE id = ? AND is_deleted = 0
10:50:05.698 [http-nio-48081-exec-8] DEBUG c.j.m.b.m.P.selectById - [debug,135] - ==> Parameters: 222(Long)
10:50:05.701 [http-nio-48081-exec-8] DEBUG c.j.m.b.m.P.selectById - [debug,135] - <==      Total: 0

你提供一下更详细的步骤把吧


少吃一顿
@JeeLowCode技术支持-小海

为什么我这样又不会自动拼接租户了

超级管理员

从接口开始排查下来,看外面有没有加上了@TenantIgnore ,如果外面的业务忽略了租户,这个service里面执行的mapper是不会自动带上tenantId的,需要自己手动带上

少吃一顿
@超级管理员

是不是这个原因,我现在的接口都加了这个前缀,这里忽略了租户,我把它注释掉或改一下前缀可以不?

超级管理员

不是这个,这个是统一放开的,然后在这里加上的,你看看是所有失效,还是当前这个接口的租户才失效

少吃一顿
@超级管理员

所有的都失效了,都不会运行到这个类的sqlParse方法



少吃一顿
@超级管理员

不启用租户的注解可以放在mapping里面吗,好像是加了这个所有的租户都失效了

超级管理员

系统自带的功能演示也没有进来吗?租户功能有启用了吗?打一个调试看看有没有进来这个方法,正常都会进来的

超级管理员

这个就是忽略租户的注解,也就是说当前执行的这块sql,不会自动加上tenantId=1


少吃一顿
@超级管理员

除了系统默认的,我都没有使用这个注解了

少吃一顿
@超级管理员

我自定义写的sql或者使用默认的selectById()也不会带上租户了

超级管理员

 if (!id.startsWith(BASE_PACKAGES_CODE) && !id.startsWith(BASE_PACKAGES_MODULE)) {//直接跳过,如果不是低代码平台,则直接跳过

               return invocation.proceed();

           }

写回答

扫码关注

微信公众号二维码