当前使用版本(必填,否则不予处理)

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

多谢