optimize QueryColumn.as() method

This commit is contained in:
开源海哥 2023-07-02 09:43:42 +08:00
parent efcc9dbf1a
commit 9729772302
11 changed files with 29 additions and 62 deletions

View File

@ -22,7 +22,6 @@ import java.io.Serializable;
public class FieldQuery implements Serializable {
private String field;
// private Class<?> mappingType;
private QueryWrapper queryWrapper;
public String getField() {
@ -33,14 +32,6 @@ public class FieldQuery implements Serializable {
this.field = field;
}
// public Class<?> getMappingType() {
// return mappingType;
// }
//
// public void setMappingType(Class<?> mappingType) {
// this.mappingType = mappingType;
// }
public QueryWrapper getQueryWrapper() {
return queryWrapper;
}

View File

@ -38,11 +38,6 @@ public class FieldQueryBuilder<T> implements Serializable {
return field(LambdaUtil.getFieldName(fn));
}
// public FieldQueryBuilder<T> type(Class<?> mappingType){
// fieldQuery.setMappingType(mappingType);
// return this;
// }
public FieldQueryBuilder<T> queryWrapper(QueryBuilder<T> fun){
fieldQuery.setQueryWrapper(fun.build(entity));
return this;

View File

@ -83,11 +83,6 @@ public class ArithmeticQueryColumn extends QueryColumn {
return this;
}
@Override
public QueryColumn as(String alias) {
this.alias = alias;
return this;
}
@Override
String toSelectSql(List<QueryTable> queryTables, IDialect dialect) {

View File

@ -77,12 +77,6 @@ public class CaseQueryColumn extends QueryColumn implements HasParamsColumn {
return sql.toString();
}
@Override
public QueryColumn as(String alias) {
this.alias = alias;
return this;
}
@Override
public Object[] getParamValues() {
Object[] values = FlexConsts.EMPTY_ARRAY;

View File

@ -79,12 +79,6 @@ public class CaseSearchQueryColumn extends QueryColumn implements HasParamsColum
whens.add(when);
}
@Override
public QueryColumn as(String alias) {
this.alias = alias;
return this;
}
@Override
public Object[] getParamValues() {

View File

@ -132,12 +132,7 @@ public class FunctionQueryColumn extends QueryColumn implements HasParamsColumn
return sql;
}
@Override
public QueryColumn as(String alias) {
SqlUtil.keepColumnSafely(alias);
this.alias = alias;
return this;
}
@Override
public String toString() {

View File

@ -35,6 +35,8 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
protected String name;
protected String alias;
private boolean returnCopyByAsMethod = false;
public QueryColumn() {
}
@ -56,8 +58,15 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
this.name = name;
}
public QueryColumn(QueryTable queryTable, String name) {
SqlUtil.keepColumnSafely(name);
this.table = queryTable;
this.name = name;
}
public QueryColumn(TableDef tableDef, String name) {
SqlUtil.keepColumnSafely(name);
this.returnCopyByAsMethod = true;
this.table = new QueryTable(tableDef);
this.name = name;
}
@ -67,12 +76,6 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
this.alias = alias;
}
public QueryColumn(QueryTable queryTable, String name) {
SqlUtil.keepColumnSafely(name);
this.table = queryTable;
this.name = name;
}
public QueryTable getTable() {
return table;
@ -99,16 +102,21 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
}
public <T> QueryColumn as(LambdaGetter<T> fn) {
return as(LambdaUtil.getFieldName(fn));
return as(LambdaUtil.getAsName(fn));
}
public QueryColumn as(String alias) {
SqlUtil.keepColumnSafely(alias);
QueryColumn newColumn = new QueryColumn();
newColumn.table = this.table;
newColumn.name = this.name;
newColumn.alias = alias;
return newColumn;
if (returnCopyByAsMethod) {
QueryColumn newColumn = new QueryColumn();
newColumn.table = this.table;
newColumn.name = this.name;
newColumn.alias = alias;
return newColumn;
} else {
this.alias = alias;
return this;
}
}

View File

@ -17,7 +17,6 @@ package com.mybatisflex.core.query;
import com.mybatisflex.core.dialect.IDialect;
import com.mybatisflex.core.util.ObjectUtil;
import com.mybatisflex.core.util.SqlUtil;
import com.mybatisflex.core.util.StringUtil;
import java.util.List;
@ -30,12 +29,6 @@ public class SelectQueryColumn extends QueryColumn implements HasParamsColumn {
this.queryWrapper = queryWrapper;
}
@Override
public SelectQueryColumn as(String alias) {
SqlUtil.keepColumnSafely(alias);
this.alias = alias;
return this;
}
QueryWrapper getQueryWrapper() {
return queryWrapper;

View File

@ -77,12 +77,6 @@ public class StringFunctionQueryColumn extends QueryColumn {
return fnName + WrapperUtil.withBracket(sql);
}
@Override
public QueryColumn as(String alias) {
SqlUtil.keepColumnSafely(alias);
this.alias = alias;
return this;
}
@Override
public String toString() {

View File

@ -43,6 +43,13 @@ public class LambdaUtil {
}
public static <T> String getAsName(LambdaGetter<T> getter) {
QueryColumn queryColumn = getQueryColumn(getter);
return queryColumn.getAlias();
}
public static <T> QueryColumn getQueryColumn(LambdaGetter<T> getter) {
SerializedLambda lambda = getSerializedLambda(getter);
String methodName = lambda.getImplMethodName();

View File

@ -22,6 +22,7 @@ public class Account extends BaseEntity implements Serializable, AgeAware {
@ColumnMask(Masks.CHINESE_NAME)
private String userName;
@As("my_age")
private int age;
@NotBlank