All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.schoolwow.quickdao.domain.database.dql.subCondition.SubCondition Maven / Gradle / Ivy

There is a newer version: 5.3.1
Show newest version
package cn.schoolwow.quickdao.domain.database.dql.subCondition;

import cn.schoolwow.quickdao.domain.database.dql.condition.Condition;

import java.io.Serializable;
import java.util.Collection;

/**
 * 关联子表查询接口
 *
 * 

关联子表查询的joinTable方法和Condition接口中的类似,只不过这是调用joinTable方法的表称为父表,关联的表为子表,父表和子表的概念是相对的.

*
    *
  1. done()方法返回主表
  2. *
  3. doneSubCondition返回父表
  4. *
*

* * @see Condition */ public interface SubCondition extends Serializable { /** * 设置子表别名 */ SubCondition tableAliasName(String tableAliasName); /** * 左外连接 */ SubCondition leftJoin(); /** * 右外连接 */ SubCondition rightJoin(); /** * 全外连接 */ SubCondition fullJoin(); /** * 添加on查询条件 * @param primaryField 主表/父表字段 * @param joinTableField 子表字段 */ SubCondition on(String primaryField, String joinTableField); /** * 添加on查询条件 * @param primaryTableAliasName 指定表别名 * @param primaryField 指定表字段 * @param joinTableField 子表字段 */ SubCondition on(String primaryTableAliasName, String primaryField, String joinTableField); /** * 添加空查询 * * @param field 指明哪个字段为Null */ SubCondition addNullQuery(String field); /** * 添加非空查询 * * @param field 指明哪个字段不为Null */ SubCondition addNotNullQuery(String field); /** * 添加空查询 * * @param field 指明哪个字段不为空字符串 */ SubCondition addEmptyQuery(String field); /** * 添加非空查询 * * @param field 指明哪个字段不为空字符串 */ SubCondition addNotEmptyQuery(String field); /** * 添加范围查询语句 * * @param field 字段名 * @param values 指明在该范围内的值 */ SubCondition addInQuery(String field, Object... values); /** * 添加范围查询语句 * * @param field 字段名 * @param values 指明在该范围内的值 */ SubCondition addInQuery(String field, Collection values); /** * 添加范围查询语句 * * @param field 字段名 * @param values 指明在不该范围内的值 */ SubCondition addNotInQuery(String field, Object... values); /** * 添加范围查询语句 * * @param field 字段名 * @param values 指明在不该范围内的值 */ SubCondition addNotInQuery(String field, Collection values); /** * 添加between语句 * * @param field 字段名 * @param start 范围开始值 * @param end 范围结束值 */ SubCondition addBetweenQuery(String field, Object start, Object end); /** * 添加Like查询 * * @param field 字段名 * @param value 字段值 */ SubCondition addLikeQuery(String field, Object value); /** * 添加Not Like查询 * * @param field 字段名 * @param value 字段值 */ SubCondition addNotLikeQuery(String field, Object value); /** * 添加where子查询 * * @param field 字段名 * @param subQuery 子查询语句 */ SubCondition addSubQuery(String field, Condition subQuery); /** * 添加where子查询 * * @param field 字段名 * @param operator 操作符,可为>,>=,=,<<= * @param subQuery 子查询语句 */ SubCondition addSubQuery(String field, String operator, Condition subQuery); /** * 添加字段查询 * * @param field 字段名 * @param value 字段值 */ SubCondition addQuery(String field, Object value); /** * 添加字段查询 * * @param field 字段名 * @param operator 操作符,可为>,>=,=,<<= * @param value 字段值 */ SubCondition addQuery(String field, String operator, Object value); /** * 添加开闭区间字段查询 * * @param field 字段名 * @param value 区间值,例如(1,100)或者[1,100] */ SubCondition addIntervalQuery(String field, String value); /** * 添加自定义查询条件 *

调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释

* * @param query 子查询条件 * @param parameterList 查询参数 * @see Condition * @see SubCondition */ SubCondition addRawQuery(String query, Object... parameterList); /** * 添加复杂集合查询 * *
     * 支持语法
     * empty: 空查询
     * not empty: 非空查询
     * like: like查询
     * not like: not like查询
     * in: in查询
     * not in: not in 查询
     * interval: 开闭区间查询
     * between: 范围查询
     * gt: 大于
     * gte: 大于等于
     * lt: 小于
     * lte: 小于等于
     * 
* * @param field 字段名 * @param value 根据语法设置对应查询请求 */ SubCondition addCompositeQuery(String field, String value); /** * 添加自定义字段,具体映射规则请看Condition类的JavaDoc注释 * * @param fields 自定义查询列\ * @see Condition */ SubCondition addColumn(String... fields); /** * 添加自定义字段 * @param column 自定义字段 * @param columnAliasName 字段别名 */ SubCondition addColumnAs(String column, String columnAliasName); /** * 添加子表字段 */ SubCondition addTableColumn(); /** * 添加指定排除字段外的主表字段 * * @param excludeFields 指定主表排除字段 * @see Condition */ SubCondition addExcludeColumn(String... excludeFields); /** * 关联表查询,子表可再次关联子表 *

调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释

* * @param clazz 待关联的子表 * @param primaryField 主表关联字段 * @param joinTableField 子表关联字段 * @see Condition * @see SubCondition */ SubCondition joinTable(Class clazz, String primaryField, String joinTableField); /** * 关联表查询,子表可再次关联子表 *

调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释

* * @param clazz 待关联的子表 * @param primaryField 主表关联字段 * @param joinTableField 子表关联字段 * @param compositField 子表实体类成员变量名 * @see Condition * @see SubCondition */ SubCondition joinTable(Class clazz, String primaryField, String joinTableField, String compositField); /** * 关联表查询,子表可再次关联子表 *

调用本方法时请先查看Condition类JavaDoc注释和SubCondition类的JavaDoc注释

* * @param tableName 待关联的子表 * @param primaryField 主表关联字段 * @param joinTableField 子表关联字段 * @see Condition * @see SubCondition */ SubCondition joinTable(String tableName, String primaryField, String joinTableField); /** * 添加分组查询 * * @param fields 分组字段 */ SubCondition groupBy(String... fields); /** * 设置指定字段排序方式 * * @param field 升序排列字段名 * @param asc 排序方式,值为asc或者desc */ SubCondition order(String field, String asc); /** * 根据指定字段升序排列 * * @param fields 升序排列字段名 */ SubCondition orderBy(String... fields); /** * 根据指定字段降序排列 * * @param fields 降序排列字段名 */ SubCondition orderByDesc(String... fields); /** * 获取lambdaSubCondition对象 */ LambdaSubCondition lambdaSubCondition(); /** * 返回父表 * * @see {@link SubCondition#joinTable(Class, String, String)} */ SubCondition doneSubCondition(); /** * 返回主表 * * @see {@link Condition#joinTable(Class, String, String)} */ Condition done(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy