feat: gitee issues/I988A6 为 DistinctQueryColumn 的 queryColumns 属性添加 getter 和 setter

This commit is contained in:
oc 2024-03-13 19:41:15 +08:00
parent e5b84ca993
commit e90df394e0

View File

@ -33,28 +33,40 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
this.queryColumns = CollectionUtil.newArrayList(queryColumns);
}
@Override
public String toSelectSql(List<QueryTable> queryTables, IDialect dialect) {
if (CollectionUtil.isEmpty(queryTables)) {
return SqlConsts.EMPTY;
public List<QueryColumn> getQueryColumns() {
return queryColumns;
}
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
String toConditionSql(List<QueryTable> queryTables, IDialect dialect) {
if (CollectionUtil.isEmpty(queryTables)) {
return SqlConsts.EMPTY;
}
return SqlConsts.DISTINCT + StringUtil.join(SqlConsts.DELIMITER, queryColumns, queryColumn ->
queryColumn.toSelectSql(queryTables, dialect));
return SqlConsts.DISTINCT + StringUtil.join(
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
@ -62,6 +74,7 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
DistinctQueryColumn clone = (DistinctQueryColumn) super.clone();
// deep clone ...
clone.queryColumns = CollectionUtil.cloneArrayList(this.queryColumns);
return clone;
}
@ -76,6 +89,7 @@ public class DistinctQueryColumn extends QueryColumn implements HasParamsColumn
for (QueryColumn queryColumn : queryColumns) {
if (queryColumn instanceof HasParamsColumn) {
Object[] paramValues = ((HasParamsColumn) queryColumn).getParamValues();
params.addAll(Arrays.asList(paramValues));
}
}