mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
refactor: 通过 builder 构建 FieldQuery 对象。
This commit is contained in:
parent
fbe722316a
commit
19644951a0
@ -15,29 +15,116 @@
|
||||
*/
|
||||
package com.mybatisflex.core.field;
|
||||
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class FieldQuery implements Serializable {
|
||||
|
||||
private String field;
|
||||
private QueryWrapper queryWrapper;
|
||||
private String className;
|
||||
private String fieldName;
|
||||
private FieldType fieldType = FieldType.AUTO;
|
||||
private boolean prevent;
|
||||
private QueryBuilder queryBuilder;
|
||||
|
||||
public String getField() {
|
||||
return field;
|
||||
public String getClassName() {
|
||||
return className;
|
||||
}
|
||||
|
||||
public void setField(String field) {
|
||||
this.field = field;
|
||||
public void setClassName(String className) {
|
||||
this.className = className;
|
||||
}
|
||||
|
||||
public QueryWrapper getQueryWrapper() {
|
||||
return queryWrapper;
|
||||
public String getFieldName() {
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
public void setQueryWrapper(QueryWrapper queryWrapper) {
|
||||
this.queryWrapper = queryWrapper;
|
||||
public void setFieldName(String fieldName) {
|
||||
this.fieldName = fieldName;
|
||||
}
|
||||
|
||||
public FieldType getFieldType() {
|
||||
return fieldType;
|
||||
}
|
||||
|
||||
public void setFieldType(FieldType fieldType) {
|
||||
this.fieldType = fieldType;
|
||||
}
|
||||
|
||||
public boolean isPrevent() {
|
||||
return prevent;
|
||||
}
|
||||
|
||||
public void setPrevent(boolean prevent) {
|
||||
this.prevent = prevent;
|
||||
}
|
||||
|
||||
public QueryBuilder getQueryBuilder() {
|
||||
return queryBuilder;
|
||||
}
|
||||
|
||||
public void setQueryBuilder(QueryBuilder queryBuilder) {
|
||||
this.queryBuilder = queryBuilder;
|
||||
}
|
||||
|
||||
public static class Builder<T> {
|
||||
|
||||
private final FieldQuery fieldQuery;
|
||||
|
||||
public Builder(String className, String fieldName) {
|
||||
this.fieldQuery = new FieldQuery();
|
||||
this.fieldQuery.setClassName(className);
|
||||
this.fieldQuery.setFieldName(fieldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置属性类型(可选,默认自动识别)。
|
||||
*
|
||||
* @param fieldType 属性类型
|
||||
* @return 构建者
|
||||
*/
|
||||
public Builder<T> fieldType(FieldType fieldType) {
|
||||
this.fieldQuery.setFieldType(fieldType);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 阻止对嵌套类属性的查询,只对 {@link FieldType#COLLECTION} 与
|
||||
* {@link FieldType#ENTITY} 两种属性类型有效。
|
||||
*
|
||||
* @return 构建者
|
||||
*/
|
||||
public Builder<T> prevent() {
|
||||
this.fieldQuery.setPrevent(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置是否阻止对嵌套类属性的查询,只对 {@link FieldType#COLLECTION} 与
|
||||
* {@link FieldType#ENTITY} 两种属性类型有效。
|
||||
*
|
||||
* @param prevent 是否阻止对嵌套类属性查询
|
||||
* @return 构建者
|
||||
*/
|
||||
public Builder<T> prevent(boolean prevent) {
|
||||
this.fieldQuery.setPrevent(prevent);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询这个属性的 {@code QueryWrapper} 对象。
|
||||
*
|
||||
* @param queryBuilder 查询包装器
|
||||
* @return 构建者
|
||||
*/
|
||||
public Builder<T> queryWrapper(QueryBuilder<T> queryBuilder) {
|
||||
this.fieldQuery.setQueryBuilder(queryBuilder);
|
||||
return this;
|
||||
}
|
||||
|
||||
protected FieldQuery build() {
|
||||
return this.fieldQuery;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user