!437 为 DistinctQueryColumn 的 queryColumns 属性添加 getter 和 setter

Merge pull request !437 from oc/gitee-issues/I988A6
This commit is contained in:
Michael Yang 2024-03-14 01:48:16 +00:00 committed by Gitee
commit 2060996645
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -33,18 +33,13 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
this.queryColumns = CollectionUtil.newArrayList(queryColumns); this.queryColumns = CollectionUtil.newArrayList(queryColumns);
} }
@Override public List<QueryColumn> getQueryColumns() {
public String toSelectSql(List<QueryTable> queryTables, IDialect dialect) { return queryColumns;
if (CollectionUtil.isEmpty(queryTables)) {
return SqlConsts.EMPTY;
}
String sql = SqlConsts.DISTINCT + StringUtil.join(SqlConsts.DELIMITER, queryColumns, queryColumn ->
queryColumn.toSelectSql(queryTables, dialect));
return sql + WrapperUtil.buildColumnAlias(alias, dialect);
} }
public void setQueryColumns(List<QueryColumn> queryColumns) {
this.queryColumns = queryColumns;
}
@Override @Override
String toConditionSql(List<QueryTable> queryTables, IDialect dialect) { String toConditionSql(List<QueryTable> queryTables, IDialect dialect) {
@ -52,9 +47,26 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
return SqlConsts.EMPTY; return SqlConsts.EMPTY;
} }
return SqlConsts.DISTINCT + StringUtil.join(SqlConsts.DELIMITER, queryColumns, queryColumn -> return SqlConsts.DISTINCT + StringUtil.join(
queryColumn.toSelectSql(queryTables, dialect)); SqlConsts.DELIMITER,
queryColumns,
queryColumn -> queryColumn.toSelectSql(queryTables, dialect)
);
}
@Override
public String toSelectSql(List<QueryTable> queryTables, IDialect dialect) {
if (CollectionUtil.isEmpty(queryTables)) {
return SqlConsts.EMPTY;
}
String sql = SqlConsts.DISTINCT + StringUtil.join(
SqlConsts.DELIMITER,
queryColumns,
queryColumn -> queryColumn.toSelectSql(queryTables, dialect)
);
return sql + WrapperUtil.buildColumnAlias(alias, dialect);
} }
@Override @Override
@ -62,6 +74,7 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
DistinctQueryColumn clone = (DistinctQueryColumn) super.clone(); DistinctQueryColumn clone = (DistinctQueryColumn) super.clone();
// deep clone ... // deep clone ...
clone.queryColumns = CollectionUtil.cloneArrayList(this.queryColumns); clone.queryColumns = CollectionUtil.cloneArrayList(this.queryColumns);
return clone; return clone;
} }
@ -76,6 +89,7 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
for (QueryColumn queryColumn : queryColumns) { for (QueryColumn queryColumn : queryColumns) {
if (queryColumn instanceof HasParamsColumn) { if (queryColumn instanceof HasParamsColumn) {
Object[] paramValues = ((HasParamsColumn) queryColumn).getParamValues(); Object[] paramValues = ((HasParamsColumn) queryColumn).getParamValues();
params.addAll(Arrays.asList(paramValues)); params.addAll(Arrays.asList(paramValues));
} }
} }