租户字段隔离 未对 <collection> 子查询语句 做租户隔离

Blade 已结 2 29

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

1. 使用mybatis plus的 标签 查询子集时 未对子集的查询语句做 租户ID的过滤 

<collection property="pushData" select="getPushData" column="{pushId=id,name=name,specs=specs,color=color}"
            ofType="org.springblade.zkingda.entity.BaseItem"/>

2. 

3.


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

     希望如同普通查询一样会自动 添加租户ID过滤 

SELECT  * FROM  myd_base_item t

LEFT JOIN blade_dict_biz u2 ON u2.dict_key = t.pur_unit AND u2.CODE = 'myd_unit'  and u2.tenant_id='123456'

或者能否在xml里面 通过某个变量名 快捷的获取到租户ID 手动添加


  实际上 未对子集SQL进行租户ID过滤 如子集查询    

SELECT  * FROM  myd_base_item t

LEFT JOIN blade_dict_biz u2 ON u2.dict_key = t.pur_unit AND u2.CODE = 'myd_unit' 


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

    bladex ,2.9.1 ,win10 

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


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

2条回答
  •  admin
    admin (最佳回答者)
    8小时前

    这种情况需要手动写sql在xml里添加条件了,需要租户id的参数,可以在调用mapper的时候直接作为参数传入,比如 SecureUtil.getTenantId() ,获取到后传递给mapper再调用就行了

    0 讨论(1)
  • 6小时前

    好的 谢谢

    0 讨论(0)
提交回复