From 2a64e3115f94f4277bdf1fa70133fd810e0c4fe8 Mon Sep 17 00:00:00 2001 From: huangweiye <1538211287@qq.com> Date: Tue, 1 Apr 2025 14:02:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=A8=20join=20=E5=A4=9A=E6=AC=A1?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E7=9A=84=E8=A1=A8=E6=97=B6,=20=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E7=A7=9F=E6=88=B7=E6=9D=A1=E4=BB=B6=E6=B2=A1=E8=83=BD?= =?UTF-8?q?=E5=8F=96=E5=88=B0=E6=AD=A3=E7=A1=AE=E7=9A=84=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mybatisflex/core/table/TableInfo.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java index a157aa56..d43af487 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java @@ -70,18 +70,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Proxy; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.StringJoiner; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; @@ -867,11 +856,16 @@ public class TableInfo { public void buildTenantCondition(QueryWrapper queryWrapper) { Object[] tenantIdArgs = buildTenantIdArgs(); + // 优先使用 join 表的 alias + String tableAlias = + Optional.ofNullable(CPI.getContext(queryWrapper).get("joinTableAlias")) + .map(String::valueOf) + .orElse(tableName); if (ArrayUtil.isNotEmpty(tenantIdArgs)) { if (tenantIdArgs.length == 1) { - queryWrapper.where(QueryCondition.create(schema, tableName, tenantIdColumn, SqlConsts.EQUALS, tenantIdArgs[0])); + queryWrapper.where(QueryCondition.create(schema, tableAlias, tenantIdColumn, SqlConsts.EQUALS, tenantIdArgs[0])); } else { - queryWrapper.where(QueryCondition.create(schema, tableName, tenantIdColumn, SqlConsts.IN, tenantIdArgs)); + queryWrapper.where(QueryCondition.create(schema, tableAlias, tenantIdColumn, SqlConsts.IN, tenantIdArgs)); } } }