Class Condition<T>

java.lang.Object
cn.lm.mybatis.mapper.entity.Condition<T>
All Implemented Interfaces:
IDynamicTableName

public class Condition<T> extends Object implements IDynamicTableName
通用的Example查询对象
Author:
liuzh
  • Field Details

    • orderByClause

      protected String orderByClause
    • distinct

      protected boolean distinct
    • exists

      protected boolean exists
    • notNull

      protected boolean notNull
    • forUpdate

      protected boolean forUpdate
    • selectColumns

      protected Set<String> selectColumns
    • excludeColumns

      protected Set<String> excludeColumns
    • countColumn

      protected String countColumn
    • oredCriteria

      protected List<Condition.Criteria<T>> oredCriteria
    • entityClass

      protected Class<T> entityClass
    • table

      protected EntityTable table
    • propertyMap

      protected Map<String,EntityColumn> propertyMap
    • tableName

      protected String tableName
    • ORDERBY

      protected Condition.OrderBy<T> ORDERBY
  • Constructor Details

    • Condition

      public Condition(Class<T> entityClass)
      默认exists为true
      Parameters:
      entityClass -
    • Condition

      public Condition(Class<T> entityClass, boolean exists)
      带exists参数的构造方法,默认notNull为false,允许为空
      Parameters:
      entityClass -
      exists - - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件
    • Condition

      public Condition(Class<T> entityClass, boolean exists, boolean notNull)
      带exists参数的构造方法
      Parameters:
      entityClass -
      exists - - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件
      notNull - - true时,如果值为空,就会抛出异常,false时,如果为空就不使用该字段的条件
  • Method Details

    • builder

      public static <T1> Condition.Builder<T1> builder(Class<T1> entityClass)
    • orderBy

      public Condition.OrderBy<T> orderBy(SFunction<T,?> column)
    • orderBy

      public Condition.OrderBy<T> orderBy(String property)
    • excludeProperties

      public Condition<T> excludeProperties(SFunction<T,?>... columns)
    • excludeProperties

      public Condition<T> excludeProperties(String... properties)
      排除查询字段,优先级低于 selectProperties
      Parameters:
      properties - 属性名的可变参数
      Returns:
    • selectProperties

      public Condition<T> selectProperties(SFunction<T,?>... columns)
    • selectProperties

      public Condition<T> selectProperties(String... properties)
      指定要查询的属性列 - 这里会自动映射到表字段
      Parameters:
      properties -
      Returns:
    • or

      public void or(Condition.Criteria<T> criteria)
    • or

      public Condition.Criteria<T> or()
    • and

      public void and(Condition.Criteria<T> criteria)
    • and

      public Condition.Criteria<T> and()
    • createCriteria

      public Condition.Criteria<T> createCriteria()
    • createCriteriaInternal

      protected Condition.Criteria<T> createCriteriaInternal()
    • clear

      public void clear()
    • getPropertyMap

      public Map<String,EntityColumn> getPropertyMap()
    • getCountColumn

      public String getCountColumn()
    • getDynamicTableName

      public String getDynamicTableName()
      Description copied from interface: IDynamicTableName
      获取动态表名 - 只要有返回值,不是null和'',就会用返回值作为表名
      Specified by:
      getDynamicTableName in interface IDynamicTableName
      Returns:
    • getEntityClass

      public Class<?> getEntityClass()
    • getOrderByClause

      public String getOrderByClause()
    • setOrderByClause

      public void setOrderByClause(String orderByClause)
    • getOredCriteria

      public List<Condition.Criteria<T>> getOredCriteria()
    • getSelectColumns

      public Set<String> getSelectColumns()
    • getColumnCache

      protected String getColumnCache(SFunction<T,?> column)
      获取 SerializedLambda 对应的列信息,从 lambda 表达式中推测实体类

      如果获取不到列信息,那么本次条件组装将会失败

      Returns:
      Throws:
      NullPointerException - 获取不到列信息时抛出异常
    • isDistinct

      public boolean isDistinct()
    • setDistinct

      public void setDistinct(boolean distinct)
    • isForUpdate

      public boolean isForUpdate()
    • setForUpdate

      public void setForUpdate(boolean forUpdate)
    • setCountProperty

      public void setCountProperty(SFunction<T,?> column)
    • setCountProperty

      public void setCountProperty(String property)
      指定 count(property) 查询属性
      Parameters:
      property -
    • setTableName

      public void setTableName(String tableName)
      设置表名
      Parameters:
      tableName -