Module bus.mapper

Class Criteria<T>

java.lang.Object
org.miaixz.bus.mapper.criteria.Criteria<T>
Type Parameters:
T - 实体类类型
Direct Known Subclasses:
OrCriteria

public class Criteria<T> extends Object
查询条件类,用于构建复杂的 SQL 查询条件
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

    • criteria

      protected List<Criterion> criteria
      条件列表,存储所有的查询条件
  • Constructor Details

    • Criteria

      public Criteria()
      默认构造函数,初始化条件列表
    • Criteria

      public Criteria(boolean useSelective)
      带选择性条件的构造函数
      Parameters:
      useSelective - 是否启用选择性条件(非空校验)
  • Method Details

    • column

      public String column(Fn<T,Object> fn)
      获取方法引用对应的列名
      Parameters:
      fn - 方法引用
      Returns:
      列名
    • typehandler

      public Class<? extends org.apache.ibatis.type.TypeHandler> typehandler(Fn<T,Object> fn)
      获取方法引用对应的类型处理器
      Parameters:
      fn - 方法引用
      Returns:
      类型处理器类
    • useCriterion

      public boolean useCriterion(Object obj)
      判断是否使用该条件 如果 useSelective=false 则不开启条件值判空,使用该条件 如果 useSelective=true 且 条件值不为空,使用该条件
      Parameters:
      obj - 条件值
      Returns:
      true 表示使用,false 表示不使用
    • addCriterion

      public void addCriterion(String condition)
      添加简单条件
      Parameters:
      condition - 条件表达式
    • addCriterion

      public void addCriterion(String condition, Object value)
      添加带单个值的条件
      Parameters:
      condition - 条件表达式
      value - 条件值
    • addCriterion

      public void addCriterion(String condition, Object value, ColumnMeta column)
      添加带单个值和列信息的条件
      Parameters:
      condition - 条件表达式
      value - 条件值
      column - 列信息
    • addCriterion

      public void addCriterion(String condition, Object value1, Object value2)
      添加范围条件
      Parameters:
      condition - 条件表达式
      value1 - 起始值
      value2 - 结束值
    • addCriterion

      public void addCriterion(String condition, Object value1, Object value2, ColumnMeta column)
      添加带列信息的范围条件
      Parameters:
      condition - 条件表达式
      value1 - 起始值
      value2 - 结束值
      column - 列信息
    • andIsNull

      public Criteria<T> andIsNull(boolean useCondition, Fn<T,Object> fn)
      条件添加字段为空的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      Returns:
      当前条件对象
    • andIsNull

      public Criteria<T> andIsNull(Fn<T,Object> fn)
      添加字段为空的判断
      Parameters:
      fn - 方法引用
      Returns:
      当前条件对象
    • andIsNotNull

      public Criteria<T> andIsNotNull(boolean useCondition, Fn<T,Object> fn)
      条件添加字段非空的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      Returns:
      当前条件对象
    • andIsNotNull

      public Criteria<T> andIsNotNull(Fn<T,Object> fn)
      添加字段非空的判断
      Parameters:
      fn - 方法引用
      Returns:
      当前条件对象
    • andEqualTo

      public Criteria<T> andEqualTo(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段等于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andEqualTo

      public Criteria<T> andEqualTo(Fn<T,Object> fn, Object value)
      添加字段等于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andNotEqualTo

      public Criteria<T> andNotEqualTo(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段不等于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andNotEqualTo

      public Criteria<T> andNotEqualTo(Fn<T,Object> fn, Object value)
      添加字段不等于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andGreaterThan

      public Criteria<T> andGreaterThan(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段大于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andGreaterThan

      public Criteria<T> andGreaterThan(Fn<T,Object> fn, Object value)
      添加字段大于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andGreaterThanOrEqualTo

      public Criteria<T> andGreaterThanOrEqualTo(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段大于等于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andGreaterThanOrEqualTo

      public Criteria<T> andGreaterThanOrEqualTo(Fn<T,Object> fn, Object value)
      添加字段大于等于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andLessThan

      public Criteria<T> andLessThan(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段小于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andLessThan

      public Criteria<T> andLessThan(Fn<T,Object> fn, Object value)
      添加字段小于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andLessThanOrEqualTo

      public Criteria<T> andLessThanOrEqualTo(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段小于等于值的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andLessThanOrEqualTo

      public Criteria<T> andLessThanOrEqualTo(Fn<T,Object> fn, Object value)
      添加字段小于等于值的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andIn

      public Criteria<T> andIn(boolean useCondition, Fn<T,Object> fn, Iterable values)
      条件添加字段在值集合中的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      values - 值集合
      Returns:
      当前条件对象
    • andIn

      public Criteria<T> andIn(Fn<T,Object> fn, Iterable values)
      添加字段在值集合中的判断
      Parameters:
      fn - 方法引用
      values - 值集合
      Returns:
      当前条件对象
    • andNotIn

      public Criteria<T> andNotIn(boolean useCondition, Fn<T,Object> fn, Iterable values)
      条件添加字段不在值集合中的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      values - 值集合
      Returns:
      当前条件对象
    • andNotIn

      public Criteria<T> andNotIn(Fn<T,Object> fn, Iterable values)
      添加字段不在值集合中的判断
      Parameters:
      fn - 方法引用
      values - 值集合
      Returns:
      当前条件对象
    • andBetween

      public Criteria<T> andBetween(boolean useCondition, Fn<T,Object> fn, Object value1, Object value2)
      条件添加字段在值区间内的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value1 - 起始值
      value2 - 结束值
      Returns:
      当前条件对象
    • andBetween

      public Criteria<T> andBetween(Fn<T,Object> fn, Object value1, Object value2)
      添加字段在值区间内的判断
      Parameters:
      fn - 方法引用
      value1 - 起始值
      value2 - 结束值
      Returns:
      当前条件对象
    • andNotBetween

      public Criteria<T> andNotBetween(boolean useCondition, Fn<T,Object> fn, Object value1, Object value2)
      条件添加字段不在值区间内的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value1 - 起始值
      value2 - 结束值
      Returns:
      当前条件对象
    • andNotBetween

      public Criteria<T> andNotBetween(Fn<T,Object> fn, Object value1, Object value2)
      添加字段不在值区间内的判断
      Parameters:
      fn - 方法引用
      value1 - 起始值
      value2 - 结束值
      Returns:
      当前条件对象
    • andLike

      public Criteria<T> andLike(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段模糊匹配的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andLike

      public Criteria<T> andLike(Fn<T,Object> fn, Object value)
      添加字段模糊匹配的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andNotLike

      public Criteria<T> andNotLike(boolean useCondition, Fn<T,Object> fn, Object value)
      条件添加字段非模糊匹配的判断
      Parameters:
      useCondition - 是否启用条件
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andNotLike

      public Criteria<T> andNotLike(Fn<T,Object> fn, Object value)
      添加字段非模糊匹配的判断
      Parameters:
      fn - 方法引用
      value - 值
      Returns:
      当前条件对象
    • andOr

      public Criteria<T> andOr(OrCriteria<T> orCriteria1, OrCriteria<T> orCriteria2, OrCriteria<T>... orCriterias)
      添加多个 OR 条件
      Parameters:
      orCriteria1 - 第一个 OR 条件
      orCriteria2 - 第二个 OR 条件
      orCriterias - 其他 OR 条件
      Returns:
      当前条件对象
    • andOr

      public Criteria<T> andOr(List<OrCriteria<T>> orCriteriaList)
      添加 OR 条件列表
      Parameters:
      orCriteriaList - OR 条件列表
      Returns:
      当前条件对象
    • andCondition

      public Criteria<T> andCondition(boolean useCondition, String condition)
      条件添加自定义条件
      Parameters:
      useCondition - 是否启用条件
      condition - 自定义条件,如 length(name) < 5
      Returns:
      当前条件对象
    • andCondition

      public Criteria<T> andCondition(String condition)
      添加自定义条件
      Parameters:
      condition - 自定义条件,如 length(name) < 5
      Returns:
      当前条件对象
    • andCondition

      public Criteria<T> andCondition(boolean useCondition, String condition, Object value)
      条件添加自定义条件和值
      Parameters:
      useCondition - 是否启用条件
      condition - 自定义条件,如 length(name)=
      value - 值
      Returns:
      当前条件对象
    • andCondition

      public Criteria<T> andCondition(String condition, Object value)
      添加自定义条件和值
      Parameters:
      condition - 自定义条件,如 length(name)=
      value - 值,如 5
      Returns:
      当前条件对象
    • getCriteria

      public List<Criterion> getCriteria()
      获取条件列表
      Returns:
      条件列表
    • isValid

      public boolean isValid()
      判断条件是否有效
      Returns:
      true 表示有效,false 表示无效