当前使用版本(必填,否则不予处理)
3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
判断当前语句是否使用租户条件过滤时使用where判断有误
重现步骤(如果有就写完整)
大概看了下源码,getTenantId方法在insert,select,join操作时使用为false,update和delete为true
报错信息
本人水平有限,如指正有误,请和平交流。
Comment From: miemieYaho
3.3.2.1-SNAPSHOT: TenantHandler
/**
* 获取租户 ID 值表达式,支持多个 ID 条件查询
* <p>
* 支持自定义表达式,比如:tenant_id in (1,2) @since 2019-8-2
* 多参请使用 {@link ValueListExpression}
*
* @param select 参数 true 表示为 select 下的 where 条件,false 表示 insert/update/delete 下的条件
* 只有 select 下才允许多参,否则只支持单参
* @return 租户 ID 值表达式
*/
Expression getTenantId(boolean select);
Comment From: sunset-warrior
不知道可否在tenantHandler.getTenantId 方法的入参上,加上Statement类型的参数,将判断是否使用哪种tenantId过滤交给使用者可好?比如在processInsert里边将Insert对象传下去?
Comment From: miemieYaho
为何 TenantId 会不一样?
Comment From: sunset-warrior
举个例子,我们业务中,保存数据的时候可能需要将当前人的租户ID保存进去,但是查询的时候需要满足当前租户的父级也可以看到。
Comment From: miemieYaho
你把多租户当权限管理用了,看这里 https://gitee.com/baomidou/mybatis-plus/issues/I1ESYP
Comment From: sunset-warrior
你把多租户当权限管理用了,看这里 https://gitee.com/baomidou/mybatis-plus/issues/I1ESYP
多谢