diff --git a/src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSelectParser.java b/src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSelectParser.java index 08b148127..bbab158de 100644 --- a/src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSelectParser.java +++ b/src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSelectParser.java @@ -484,10 +484,11 @@ public class DruidSelectParser extends DefaultDruidParser { } private boolean hasShardingColumnWithAlia(BaseTableConfig tc, String columnName, Map aliaColumns) { - String shardingColumn = ((ShardingTableConfig) tc).getShardingColumn(); - boolean isShardingColumn = tc instanceof ShardingTableConfig && columnName.equalsIgnoreCase(shardingColumn); + String shardingColumn = ""; + boolean isShardingColumn = tc instanceof ShardingTableConfig && columnName.equalsIgnoreCase(shardingColumn = ((ShardingTableConfig) tc).getShardingColumn()); if (!isShardingColumn) { - Optional> alias = aliaColumns.entrySet().stream().filter(c -> c.getKey().toUpperCase().equals(shardingColumn)).findFirst(); + String finalShardingColumn = shardingColumn; + Optional> alias = aliaColumns.entrySet().stream().filter(c -> c.getKey().toUpperCase().equals(finalShardingColumn)).findFirst(); if (alias.isPresent()) { isShardingColumn = tc instanceof ShardingTableConfig && alias.get().getValue().equalsIgnoreCase(columnName); }