cn.schoolwow.quickdao.domain.database.dql.subCondition.LambdaSubCondition Maven / Gradle / Ivy
package cn.schoolwow.quickdao.domain.database.dql.subCondition;
import cn.schoolwow.quickdao.domain.database.dql.condition.Condition;
import cn.schoolwow.quickdao.module.database.dql.condition.domain.SFunction;
import java.io.Serializable;
import java.util.Collection;
/**
* 定义Lambda查询参数接口
*/
public interface LambdaSubCondition extends Serializable {
/**
* 添加on查询条件
*/
LambdaSubCondition on(SFunction primaryField, SFunction joinTableField);
/**
* 添加空查询
*
* @param field 指明哪个字段为Null
*/
LambdaSubCondition addNullQuery(SFunction field);
/**
* 添加非空查询
*
* @param field 指明哪个字段不为Null
*/
LambdaSubCondition addNotNullQuery(SFunction field);
/**
* 添加空查询
*
* @param field 指明哪个字段不为空字符串
*/
LambdaSubCondition addEmptyQuery(SFunction field);
/**
* 添加非空查询
*
* @param field 指明哪个字段不为空字符串
*/
LambdaSubCondition addNotEmptyQuery(SFunction field);
/**
* 添加范围查询语句
*
* @param field 字段名
* @param values 指明在该范围内的值
*/
LambdaSubCondition addInQuery(SFunction field, Object... values);
/**
* 添加范围查询语句
*
* @param field 字段名
* @param values 指明在该范围内的值
*/
LambdaSubCondition addInQuery(SFunction field, Collection values);
/**
* 添加范围查询语句
*
* @param field 字段名
* @param values 指明在不该范围内的值
*/
LambdaSubCondition addNotInQuery(SFunction field, Object... values);
/**
* 添加范围查询语句
*
* @param field 字段名
* @param values 指明在不该范围内的值
*/
LambdaSubCondition addNotInQuery(SFunction field, Collection values);
/**
* 添加between语句
*
* @param field 字段名
* @param start 范围开始值
* @param end 范围结束值
*/
LambdaSubCondition addBetweenQuery(SFunction field, Object start, Object end);
/**
* 添加Like查询
*
* @param field 字段名
* @param value 字段值
*/
LambdaSubCondition addLikeQuery(SFunction field, Object value);
/**
* 添加字段查询
*
* @param field 字段名
* @param value 字段值
*/
LambdaSubCondition addQuery(SFunction field, Object value);
/**
* 添加字段查询
*
* @param field 字段名
* @param operator 操作符,可为>,>=,=,<<=
* @param value 字段值
*/
LambdaSubCondition addQuery(SFunction field, String operator, Object value);
/**
* 添加自定义字段,具体映射规则请看Condition类的JavaDoc注释
*
* @param fields 自定义查询列
* @see Condition
*/
LambdaSubCondition addColumn(SFunction... fields);
/**
* 关联表查询,子表可再次关联子表
* 调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释
*
* @param clazz 待关联的子表
* @param primaryField 主表关联字段
* @param joinTableField 子表关联字段
* @see Condition
* @see LambdaSubCondition
*/
LambdaSubCondition joinTable(Class clazz, SFunction primaryField, SFunction joinTableField);
/**
* 关联表查询,子表可再次关联子表
* 调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释
*
* @param clazz 待关联的子表
* @param primaryField 主表关联字段
* @param joinTableField 子表关联字段
* @param compositField 子表实体类成员变量名
* @see Condition
* @see LambdaSubCondition
*/
LambdaSubCondition joinTable(Class clazz, SFunction primaryField, SFunction joinTableField, SFunction compositField);
/**
* 添加分组查询
*
* @param fields 分组字段
*/
LambdaSubCondition groupBy(SFunction... fields);
/**
* 设置指定字段排序方式
*
* @param field 升序排列字段名
* @param asc 排序方式,值为asc或者desc
*/
LambdaSubCondition order(SFunction field, SFunction asc);
/**
* 根据指定字段升序排列
*
* @param fields 升序排列字段名
*/
LambdaSubCondition orderBy(SFunction... fields);
/**
* 根据指定字段降序排列
*
* @param fields 降序排列字段名
*/
LambdaSubCondition orderByDesc(SFunction... fields);
/**
* 返回关联查询对象
*/
SubCondition done();
}