Module bus.mapper

Class Condition<T>

java.lang.Object
org.miaixz.bus.mapper.binding.condition.Condition<T>
Type Parameters:
T - 实体类类型

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

    • orderByClause

      protected String orderByClause
      排序字段
    • distinct

      protected boolean distinct
      是否使用 DISTINCT 关键字
    • selectColumns

      protected String selectColumns
      指定查询的列
    • simpleSelectColumns

      protected String simpleSelectColumns
      指定查询的列,不带 column AS alias 别名
    • startSql

      protected String startSql
      起始 SQL,添加到查询 SQL 前
    • endSql

      protected String endSql
      结尾 SQL,添加到查询 SQL 后
    • oredCriteria

      protected List<Criteria<T>> oredCriteria
      多组条件通过 OR 连接
    • setValues

      protected List<Criterion> setValues
      设置 UPDATE 语句的 SET 字段
  • Constructor Details

    • Condition

      public Condition()
      默认构造方法,初始化条件列表和 SET 值列表,禁止空条件操作全库
  • Method Details

    • or

      public void or(Criteria<T> criteria)
      添加 OR 条件
      Parameters:
      criteria - 条件对象
    • or

      public Criteria<T> or()
      创建并添加一组 OR 条件
      Returns:
      新创建的条件对象
    • orPart

      public OrCriteria<T> orPart()
      创建独立的 OR 条件片段,不追加到当前条件
      Returns:
      OR 条件对象
    • createCriteria

      public Criteria<T> createCriteria()
      创建一组条件,首次调用时作为默认条件
      Returns:
      新创建的条件对象
    • createCriteriaSelective

      public Criteria<T> createCriteriaSelective()
      创建一组选择性条件,首次调用时作为默认条件
      Returns:
      新创建的选择性条件对象
    • createCriteriaInternal

      protected Criteria<T> createCriteriaInternal()
      内部创建条件对象
      Returns:
      新创建的条件对象
    • clear

      public void clear()
      清除所有条件和设置
    • selectColumns

      @SafeVarargs public final Condition<T> selectColumns(Fn<T,Object>... fns)
      指定查询列,多次调用覆盖,清除排除列设置
      Parameters:
      fns - 方法引用数组
      Returns:
      当前条件对象
    • excludeColumns

      @SafeVarargs public final Condition<T> excludeColumns(Fn<T,Object>... fns)
      排除指定查询列,清除已选列设置
      Parameters:
      fns - 方法引用数组
      Returns:
      当前条件对象
    • getSelectColumns

      public String getSelectColumns()
      获取查询列
      Returns:
      查询列字符串
    • setSelectColumns

      public Condition<T> setSelectColumns(String selectColumns)
      设置查询列
      Parameters:
      selectColumns - 查询列字符串
      Returns:
      当前条件对象
    • getSimpleSelectColumns

      public String getSimpleSelectColumns()
      获取不带别名的查询列
      Returns:
      简单查询列字符串
    • setSimpleSelectColumns

      public Condition<T> setSimpleSelectColumns(String simpleSelectColumns)
      设置不带别名的查询列
      Parameters:
      simpleSelectColumns - 简单查询列字符串
      Returns:
      当前条件对象
    • getStartSql

      public String getStartSql()
      获取起始 SQL
      Returns:
      起始 SQL 字符串
    • setStartSql

      public Condition<T> setStartSql(String startSql)
      设置起始 SQL
      Parameters:
      startSql - 起始 SQL 字符串
      Returns:
      当前条件对象
    • getEndSql

      public String getEndSql()
      获取结尾 SQL
      Returns:
      结尾 SQL 字符串
    • setEndSql

      public Condition<T> setEndSql(String endSql)
      设置结尾 SQL
      Parameters:
      endSql - 结尾 SQL 字符串
      Returns:
      当前条件对象
    • orderBy

      public Condition<T> orderBy(Fn<T,Object> fn, String order)
      通过方法引用设置排序字段
      Parameters:
      fn - 排序列方法引用
      order - 排序方式(ASC/DESC)
      Returns:
      当前条件对象
    • orderBy

      public Condition<T> orderBy(String orderByCondition)
      设置非常规或字符串形式的排序,不覆盖已有排序
      Parameters:
      orderByCondition - 排序表达式,如 "status = 5 DESC"
      Returns:
      当前条件对象
    • orderBy

      public Condition<T> orderBy(Supplier<String> orderByCondition)
      设置动态构造的非常规排序
      Parameters:
      orderByCondition - 排序表达式提供者,如 FIELD(id,3,1,2)
      Returns:
      当前条件对象
    • orderByAsc

      @SafeVarargs public final Condition<T> orderByAsc(Fn<T,Object>... fns)
      通过方法引用设置升序排序
      Parameters:
      fns - 排序列方法引用数组
      Returns:
      当前条件对象
    • orderByDesc

      @SafeVarargs public final Condition<T> orderByDesc(Fn<T,Object>... fns)
      通过方法引用设置降序排序
      Parameters:
      fns - 排序列方法引用数组
      Returns:
      当前条件对象
    • getOrderByClause

      public String getOrderByClause()
      获取排序字段
      Returns:
      排序字段字符串
    • setOrderByClause

      public Condition<T> setOrderByClause(String orderByClause)
      设置排序字段
      Parameters:
      orderByClause - 排序字段字符串
      Returns:
      当前条件对象
    • getOredCriteria

      public List<Criteria<T>> getOredCriteria()
      获取所有 OR 条件
      Returns:
      OR 条件列表
    • getSetValues

      public List<Criterion> getSetValues()
      获取 SET 值列表
      Returns:
      SET 值列表
    • isEmpty

      public boolean isEmpty()
      判断查询条件是否为空
      Returns:
      true 表示为空,false 表示非空
    • isDistinct

      public boolean isDistinct()
      获取 DISTINCT 设置
      Returns:
      true 表示启用 DISTINCT,false 表示未启用
    • setDistinct

      public Condition<T> setDistinct(boolean distinct)
      设置 DISTINCT
      Parameters:
      distinct - true 启用 DISTINCT,false 不启用
      Returns:
      当前条件对象
    • set

      public Condition<T> set(String setSql)
      设置更新字段和值
      Parameters:
      setSql - SET 子句,如 "column = value"
      Returns:
      当前条件对象
    • set

      public Condition<T> set(Fn<T,Object> fn, Object value)
      设置更新字段和值
      Parameters:
      fn - 字段方法引用
      value - 值
      Returns:
      当前条件对象