mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
fix: 在 join 多次相同的表时, 构建租户条件没能取到正确的别名
This commit is contained in:
parent
65b1161651
commit
2a64e3115f
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user