package org.dayatang.domain;
import java.util.Collection;
/**
* 各种查询条件的静态工厂。
* 将查询条件创建委托给CriterionBuilder实现。
* 如果在Java类中频繁用到Criteria的多个方法,建议使用静态导入: import static org.dayatang.domain.Criteria.*;
* Created by yyang on 15/8/10.
*/
public class Criteria {
private static final CriterionBuilder BUILDER = InstanceFactory.getInstance(CriterionBuilder.class);
/**
* 创建一个代表“属性名 = 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion eq(String propName, Object value) {
return BUILDER.eq(propName, value);
}
/**
* 创建一个代表“属性名 != 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion notEq(String propName, Object value) {
return BUILDER.notEq(propName, value);
}
/**
* 创建一个代表“属性名 >= 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion ge(String propName, Comparable<?> value) {
return BUILDER.ge(propName, value);
}
/**
* 创建一个代表“属性名 > 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion gt(String propName, Comparable<?> value) {
return BUILDER.gt(propName, value);
}
/**
* 创建一个代表“属性名 <= 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion le(String propName, Comparable<?> value) {
return BUILDER.le(propName, value);
}
/**
* 创建一个代表“属性名 < 值”的查询条件
* @param propName 属性名
* @param value 值
* @return 一个查询条件
*/
public static QueryCriterion lt(String propName, Comparable<?> value) {
return BUILDER.lt(propName, value);
}
/**
* 创建一个代表“属性1 = 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion eqProp(String propName, String otherPropName) {
return BUILDER.eqProp(propName, otherPropName);
}
/**
* 创建一个代表“属性1 != 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion notEqProp(String propName, String otherPropName) {
return BUILDER.notEqProp(propName, otherPropName);
}
/**
* 创建一个代表“属性1 > 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion gtProp(String propName, String otherPropName) {
return BUILDER.gtProp(propName, otherPropName);
}
/**
* 创建一个代表“属性1 >= 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion geProp(String propName, String otherPropName) {
return BUILDER.geProp(propName, otherPropName);
}
/**
* 创建一个代表“属性1 < 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion ltProp(String propName, String otherPropName) {
return BUILDER.ltProp(propName, otherPropName);
}
/**
* 创建一个代表“属性1 <= 属性2”的查询条件
* @param propName 属性名
* @param otherPropName 另一个属性名
* @return 一个查询条件
*/
public static QueryCriterion leProp(String propName, String otherPropName) {
return BUILDER.leProp(propName, otherPropName);
}
/**
* 创建一个代表“集合属性元素数量 = 值”的查询条件(例如:查找子女数量=2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeEq(String propName, int size) {
return BUILDER.sizeEq(propName, size);
}
/**
* 创建一个代表“集合属性元素数量 != 值”的查询条件(例如:查找子女数量!=2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeNotEq(String propName, int size) {
return BUILDER.sizeNotEq(propName, size);
}
/**
* 创建一个代表“集合属性元素数量 > 值”的查询条件(例如:查找子女数量>2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeGt(String propName, int size) {
return BUILDER.sizeGt(propName, size);
}
/**
* 创建一个代表“集合属性元素数量 >= 值”的查询条件(例如:查找子女数量>=2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeGe(String propName, int size) {
return BUILDER.sizeGe(propName, size);
}
/**
* 创建一个代表“集合属性元素数量 < 值”的查询条件(例如:查找子女数量<2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeLt(String propName, int size) {
return BUILDER.sizeLt(propName, size);
}
/**
* 创建一个代表“集合属性元素数量 <= 值”的查询条件(例如:查找子女数量<=2的人)
* @param propName 集合属性名
* @param size 集合元素的数量
* @return 一个查询条件
*/
public static QueryCriterion sizeLe(String propName, int size) {
return BUILDER.sizeLe(propName, size);
}
/**
* 创建一个代表“文本属性包含某段文字”的查询条件
* @param propName 文本属性名
* @param value 被匹配的文本
* @return 一个查询条件
*/
public static QueryCriterion containsText(String propName, String value) {
return BUILDER.containsText(propName, value);
}
/**
* 创建一个代表“文本属性以某段文字开头”的查询条件
* @param propName 文本属性名
* @param value 被匹配的文本
* @return 一个查询条件
*/
public static QueryCriterion startsWithText(String propName, String value) {
return BUILDER.startsWithText(propName, value);
}
/**
* 创建一个代表“属性值包含在某个集合中”的查询条件
* @param propName 属性名
* @param value 值的集合
* @return 一个查询条件
*/
public static QueryCriterion in(String propName, Collection<?> value) {
return BUILDER.in(propName, value);
}
/**
* 创建一个代表“属性值包含在某个数组中”的查询条件
* @param propName 属性名
* @param value 值的数组
* @return 一个查询条件
*/
public static QueryCriterion in(String propName, Object[] value) {
return BUILDER.in(propName, value);
}
/**
* 创建一个代表“属性值不包含在某个集合中”的查询条件
* @param propName 属性名
* @param value 值的集合
* @return 一个查询条件
*/
public static QueryCriterion notIn(String propName, Collection<?> value) {
return BUILDER.notIn(propName, value);
}
/**
* 创建一个代表“属性值包含在某个数组中”的查询条件
* @param propName 属性名
* @param value 值的数组
* @return 一个查询条件
*/
public static QueryCriterion notIn(String propName, Object[] value) {
return BUILDER.notIn(propName, value);
}
/**
* 创建一个代表“属性值位于某个区间范围”的查询条件。结果包含下限,不包含上限。
* @param propName 属性名
* @param from 区间下限
* @param to 区间上限
* @return 一个查询条件
*/
public static QueryCriterion between(String propName, Comparable<?> from, Comparable<?> to) {
return BUILDER.between(propName, from, to);
}
/**
* 创建一个代表“属性值为null”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion isNull(String propName) {
return BUILDER.isNull(propName);
}
/**
* 创建一个代表“属性值不为null”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion notNull(String propName) {
return BUILDER.notNull(propName);
}
/**
* 创建一个代表“集合属性值为空集”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion isEmpty(String propName) {
return BUILDER.isEmpty(propName);
}
/**
* 创建一个代表“集合属性值不为空集”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion notEmpty(String propName) {
return BUILDER.notEmpty(propName);
}
/**
* 创建一个代表“属性值为true”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion isTrue(String propName) {
return BUILDER.isTrue(propName);
}
/**
* 创建一个代表“属性值为false”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion isFalse(String propName) {
return BUILDER.isFalse(propName);
}
/**
* 创建一个代表“文本属性值为null或空字符串”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion isBlank(String propName) {
return BUILDER.isBlank(propName);
}
/**
* 创建一个代表“文本属性值不为null和空字符串”的查询条件
* @param propName 属性名
* @return 一个查询条件
*/
public static QueryCriterion notBlank(String propName) {
return BUILDER.notBlank(propName);
}
/**
* 创建一个代表“对一个查询条件取反”的查询条件
* @param criterion 查询条件
* @return 一个查询条件
*/
public static QueryCriterion not(QueryCriterion criterion) {
return BUILDER.not(criterion);
}
/**
* 创建一个代表“同时符合多个查询条件”的查询条件
* @param criteria 一批查询条件
* @return 一个查询条件
*/
public static QueryCriterion and(QueryCriterion... criteria) {
return BUILDER.and(criteria);
}
/**
* 创建一个代表“符合多个查询条件之一”的查询条件
* @param criteria 一批查询条件
* @return 一个查询条件
*/
public static QueryCriterion or(QueryCriterion... criteria) {
return BUILDER.or(criteria);
}
/**
* 创建一个代表“空查询条件”的查询条件。“空查询条件”对查询不添加任何限制,它的存在只是为了简化代码逻辑。
* @return 一个空查询条件
*/
public static QueryCriterion empty() {
return BUILDER.empty();
}
}