public class EntityTable extends EntityProps<EntityTable>
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
autoResultMap
自动根据字段生成 <resultMap>
|
protected String |
catalog
catalog 名称,配置后,会在表名前面加上 catalog 名称,规则为:catalog.schema.tableName,支持全局 mybatis.provider.catalog 配置
|
protected List<EntityColumn> |
columns
字段信息
|
static Pattern |
DELIMITER |
protected Class<?> |
entityClass
实体类
|
protected String[] |
excludeFields
排除指定字段名的字段
|
protected Class<?>[] |
excludeFieldTypes
排除指定类型的字段
|
protected Class<?>[] |
excludeSuperClasses
排除指定父类的所有字段
|
protected Set<org.apache.ibatis.session.Configuration> |
initConfiguration
已经初始化的配置
|
protected boolean |
ready
初始化完成,可以使用
|
static String |
RESULT_MAP_NAME |
protected String |
resultMap
使用指定的 <resultMap>
|
protected List<org.apache.ibatis.mapping.ResultMap> |
resultMaps
已初始化自动ResultMap
|
protected String |
schema
schema 名称,配置后,会在表名前面加上 schema 名称,规则为:catalog.schema.tableName,支持全局 mybatis.provider.schema 配置
|
protected String |
style
实体类和字段转表名和字段名方式
|
protected String |
table
原始表名,在拼 SQL 中,使用
tableName() 方法,这个方法可能会返回代理方法加工后的值 |
props| Modifier | Constructor and Description |
|---|---|
protected |
EntityTable(Class<?> entityClass) |
| Modifier and Type | Method and Description |
|---|---|
void |
addColumn(EntityColumn column)
添加列
|
String |
baseColumnAsPropertyList()
所有查询列,形如 column1 AS property1, column2 AS property2, ...
|
String |
baseColumnList()
所有查询列,形如 column1, column2, ...
|
protected boolean |
canUseResultMaps(org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
是否使用 resultMaps
|
List<String> |
columnNames()
返回所有列名
|
List<EntityColumn> |
columns()
返回所有列
|
boolean |
equals(Object o) |
List<String> |
fieldNames()
返回所有属性名
|
List<EntityField> |
fields()
返回所有字段
|
protected String |
generateResultMapId(org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String resultMapId) |
protected org.apache.ibatis.mapping.ResultMap |
genResultMap(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey) |
org.apache.ibatis.type.TypeHandler |
getTypeHandlerInstance(Class<?> javaTypeClass,
Class<?> typeHandlerClass)
实例化TypeHandler
|
Optional<String> |
groupByColumn()
带上 GROUP BY 前缀的方法,默认空,默认查询列来自
groupByColumnList() |
Optional<String> |
groupByColumnList()
所有 order by 字段,默认空,字段来源
groupByColumns() 参考值: column1, column2, ... |
Optional<List<EntityColumn>> |
groupByColumns()
所有 GROUP BY 到的字段,默认为空,当使用 GROUP BY 列时,必须使用当前方法返回的列
|
protected boolean |
hasBeenReplaced(org.apache.ibatis.session.Configuration configuration,
String cacheKey)
是否已经替换 resultMap
|
int |
hashCode() |
Optional<String> |
havingColumn()
带上 HAVING 前缀的方法,默认空,默认查询列来自
havingColumnList() |
Optional<String> |
havingColumnList()
所有 having 字段,默认空,字段来源
havingColumns() 参考值: column1, column2, ... |
Optional<List<EntityColumn>> |
havingColumns()
所有 HAVING 到的字段,默认为空,当使用 HAVING 列时,必须使用当前方法返回的列
|
List<EntityColumn> |
idColumns()
返回主键列,不会为空,当根据主键作为条件时,必须使用当前方法返回的列,没有设置主键时,当前方法返回所有列
|
protected void |
initResultMap(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey) |
void |
initRuntimeContext(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
设置运行时信息,不同方法分别执行一次,需要保证幂等
|
String |
insertColumnList()
所有 insert 列,形如 column1, column2, ...,字段来源
insertColumns() |
List<EntityColumn> |
insertColumns()
所有 insert 用到的字段,当插入列时,必须使用当前方法返回的列
|
boolean |
isExcludeField(EntityField field)
是否需要排除指定的字段
|
boolean |
isExcludeSuperClass(Class<?> superClass)
是否需要排除父类
|
List<EntityColumn> |
normalColumns()
返回普通列,排除主键字段,当根据非主键作为条件时,必须使用当前方法返回的列
|
static EntityTable |
of(Class<?> entityClass) |
Optional<String> |
orderByColumn()
带上 ORDER BY 前缀的方法,默认空,默认查询列来自
orderByColumnList() |
Optional<String> |
orderByColumnList()
所有 order by 字段,默认空,字段来源
orderByColumns() 参考值: column1, column2, ... |
Optional<List<EntityColumn>> |
orderByColumns()
所有排序用到的字段
|
List<EntityColumn> |
selectColumns()
返回查询列,当获取查询列时,必须使用当前方法返回的列
|
String |
tableName()
获取 SQL 语句中使用的表名
|
String |
toString() |
List<EntityColumn> |
updateColumns()
所有 update 用到的字段,当更新列时,必须使用当前方法返回的列
|
boolean |
useResultMaps()
当前实体类是否使用 resultMap
|
List<EntityColumn> |
whereColumns()
返回查询列,默认所有列,当使用查询条件列时,必须使用当前方法返回的列
|
getProp, getProp, getPropBoolean, getPropBoolean, getPropInt, getPropInt, removeProp, setProp, setProp, setPropspublic static final Pattern DELIMITER
public static final String RESULT_MAP_NAME
protected String table
tableName() 方法,这个方法可能会返回代理方法加工后的值protected String catalog
protected String schema
protected String style
protected Class<?> entityClass
protected List<EntityColumn> columns
protected boolean ready
protected String resultMap
protected boolean autoResultMap
protected List<org.apache.ibatis.mapping.ResultMap> resultMaps
protected Class<?>[] excludeSuperClasses
protected Class<?>[] excludeFieldTypes
protected String[] excludeFields
protected Set<org.apache.ibatis.session.Configuration> initConfiguration
protected EntityTable(Class<?> entityClass)
public static EntityTable of(Class<?> entityClass)
public String tableName()
public List<EntityColumn> columns()
public List<EntityField> fields()
public void addColumn(EntityColumn column)
protected boolean canUseResultMaps(org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
providerContext - 当前方法信息cacheKey - 缓存 key,每个方法唯一,默认和 msId 一样public boolean useResultMaps()
protected boolean hasBeenReplaced(org.apache.ibatis.session.Configuration configuration,
String cacheKey)
configuration - MyBatis 配置类,慎重操作cacheKey - 缓存 key,每个方法唯一,默认和 msId 一样public void initRuntimeContext(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
configuration - MyBatis 配置类,慎重操作,多数据源或多个配置时,需要区分 Configuration 执行providerContext - 当前方法信息cacheKey - 缓存 key,每个方法唯一,默认和 msId 一样protected void initResultMap(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
protected String generateResultMapId(org.apache.ibatis.builder.annotation.ProviderContext providerContext, String resultMapId)
protected org.apache.ibatis.mapping.ResultMap genResultMap(org.apache.ibatis.session.Configuration configuration,
org.apache.ibatis.builder.annotation.ProviderContext providerContext,
String cacheKey)
public org.apache.ibatis.type.TypeHandler getTypeHandlerInstance(Class<?> javaTypeClass, Class<?> typeHandlerClass)
public List<EntityColumn> idColumns()
public List<EntityColumn> normalColumns()
public List<EntityColumn> selectColumns()
public List<EntityColumn> whereColumns()
public List<EntityColumn> insertColumns()
public List<EntityColumn> updateColumns()
public Optional<List<EntityColumn>> groupByColumns()
public Optional<List<EntityColumn>> havingColumns()
public Optional<List<EntityColumn>> orderByColumns()
public String baseColumnList()
public String baseColumnAsPropertyList()
public String insertColumnList()
insertColumns()public Optional<String> groupByColumnList()
groupByColumns() 参考值: column1, column2, ...
默认重写 groupByColumns() 方法即可,当前方法不需要重写
public Optional<String> groupByColumn()
groupByColumnList()
默认重写 groupByColumns() 方法即可,当前方法不需要重写
public Optional<String> havingColumnList()
havingColumns() 参考值: column1, column2, ...public Optional<String> havingColumn()
havingColumnList()public Optional<String> orderByColumnList()
orderByColumns() 参考值: column1, column2, ...
默认重写 orderByColumns() 方法即可,当前方法不需要重写
public Optional<String> orderByColumn()
orderByColumnList()
默认重写 orderByColumns() 方法即可,当前方法不需要重写
public boolean isExcludeSuperClass(Class<?> superClass)
superClass - 父类public boolean isExcludeField(EntityField field)
field - 字段Copyright © 2023. All rights reserved.