- java.lang.Object
-
- org.redkale.source.EntityInfo<T>
-
- 类型参数:
T
- Entity类的泛型
public final class EntityInfo<T> extends Object
Entity操作类详情见: https://redkale.org
- 作者:
- zhangjx
-
-
方法概要
-
-
-
方法详细资料
-
compile
public static <T> EntityInfo<T> compile(Class<T> clazz, DataSource source)
给PrepareCompiler使用,用于预动态生成Attribute- 类型参数:
T
- 泛型- 参数:
clazz
- Entity实体类source
- 数据源- 返回:
- EntityInfo
- 从以下版本开始:
- 2.5.0
-
getSubobject
public <V> V getSubobject(String name)
-
getSubobjectIfAbsent
public <V> V getSubobjectIfAbsent(String name, Function<String,? extends V> func)
-
removeSubobject
public void removeSubobject(String name)
-
clearSubobjects
public void clearSubobjects()
-
getJsonConvert
public JsonConvert getJsonConvert()
获取JsonConvert- 返回:
- JsonConvert
-
getCache
public EntityCache<T> getCache()
获取Entity缓存器- 返回:
- EntityCache
-
isCacheFullLoaded
public boolean isCacheFullLoaded()
判断缓存器是否已经全量加载过- 返回:
- boolean
-
getBuilder
public EntityBuilder<T> getBuilder()
获取Entity构建器- 返回:
- Creator
-
getArrayer
public IntFunction<T[]> getArrayer()
获取Entity数组构建器- 返回:
- Creator
-
isVirtualEntity
public boolean isVirtualEntity()
判断Entity是否为虚拟类- 返回:
- boolean
-
isAutoGenerated
public boolean isAutoGenerated()
-
getTableStrategy
public DistributeTableStrategy<T> getTableStrategy()
-
disTableLock
public ReentrantLock disTableLock()
-
containsDisTable
public boolean containsDisTable(String tableKey)
-
addDisTable
public void addDisTable(String tableKey)
-
removeDisTable
public boolean removeDisTable(String tableKey)
-
getDDLColumns
public EntityColumn[] getDDLColumns()
-
getInsertColumns
public EntityColumn[] getInsertColumns()
-
getUpdateColumns
public EntityColumn[] getUpdateColumns()
-
getUpdateEntityColumns
public EntityColumn[] getUpdateEntityColumns()
-
getQueryColumns
public EntityColumn[] getQueryColumns()
-
getInsertAttributes
public Attribute<T,Serializable>[] getInsertAttributes()
-
getUpdateAttributes
public Attribute<T,Serializable>[] getUpdateAttributes()
-
getUpdateEntityAttributes
public Attribute<T,Serializable>[] getUpdateEntityAttributes()
-
getQueryAttributes
public Attribute<T,Serializable>[] getQueryAttributes()
-
getFindQuestionPrepareSQL
public String getFindQuestionPrepareSQL(Serializable pk)
获取Entity的QUERY SQL- 参数:
pk
- 主键值- 返回:
- String
-
getFindsQuestionPrepareSQL
public String getFindsQuestionPrepareSQL(Serializable pk)
获取Entity的QUERY FINDS SQL- 参数:
pk
- 主键值- 返回:
- String
-
getAllQueryPrepareSQL
public String getAllQueryPrepareSQL()
获取Entity的QUERY SQL- 返回:
- String
-
getFindDollarPrepareSQL
public String getFindDollarPrepareSQL(Serializable pk)
获取Entity的QUERY SQL- 参数:
pk
- 主键值- 返回:
- String
-
getFindsDollarPrepareSQL
public String getFindsDollarPrepareSQL(Serializable pk)
获取Entity的QUERY FINDS SQL- 参数:
pk
- 主键值- 返回:
- String
-
getFindNamesPrepareSQL
public String getFindNamesPrepareSQL(Serializable pk)
获取Entity的QUERY SQL- 参数:
pk
- 主键值- 返回:
- String
-
getFindsNamesPrepareSQL
public String getFindsNamesPrepareSQL(Serializable pk)
获取Entity的QUERY FINDS SQL- 参数:
pk
- 主键值- 返回:
- String
-
getInsertQuestionPrepareSQL
public String getInsertQuestionPrepareSQL(T bean)
获取Entity的INSERT SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getInsertDollarPrepareSQL
public String getInsertDollarPrepareSQL(T bean)
获取Entity的INSERT SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getInsertNamesPrepareSQL
public String getInsertNamesPrepareSQL(T bean)
获取Entity的INSERT SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getUpdateQuestionPrepareSQL
public String getUpdateQuestionPrepareSQL(T bean)
获取Entity的UPDATE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getUpdateDollarPrepareSQL
public String getUpdateDollarPrepareSQL(T bean)
获取Entity的UPDATE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getUpdateQuestionPrepareCaseSQL
public String getUpdateQuestionPrepareCaseSQL(T[] beans)
获取Entity的UPDATE CASE SQL- 参数:
beans
- Entity对象- 返回:
- String
-
getUpdateDollarPrepareCaseSQL
public String getUpdateDollarPrepareCaseSQL(T[] beans)
获取Entity的UPDATE CASE SQL- 参数:
beans
- Entity对象- 返回:
- String
-
getUpdateNamesPrepareSQL
public String getUpdateNamesPrepareSQL(T bean)
获取Entity的UPDATE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getDeleteQuestionPrepareSQL
public String getDeleteQuestionPrepareSQL(T bean)
获取Entity的DELETE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getDeleteDollarPrepareSQL
public String getDeleteDollarPrepareSQL(T bean)
获取Entity的DELETE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getDeleteNamesPrepareSQL
public String getDeleteNamesPrepareSQL(T bean)
获取Entity的DELETE SQL- 参数:
bean
- Entity对象- 返回:
- String
-
getQueryColumns
public CharSequence getQueryColumns(String tabalis, SelectColumn selects)
获取查询字段列表- 参数:
tabalis
- 表别名selects
- 过滤字段- 返回:
- String
-
getOriginTable
public String getOriginTable()
-
getTableMap
public Map<String,List<Serializable>> getTableMap(Serializable... pks)
-
getSource
public String getSource(Serializable primary)
获取DataSource资源名,为null表示没有分布物理库- 参数:
primary
- Entity主键值- 返回:
- String
-
getSource
public String getSource(T bean)
获取DataSource资源名,为null表示没有分布物理库- 参数:
bean
- Entity实体- 返回:
- String
-
getSource
public String getSource(FilterNode node)
获取DataSource资源名,为null表示没有分布物理库- 参数:
node
- FilterNode- 返回:
- String
-
getTable
public String getTable(Serializable primary)
根据主键值获取Entity的表名- 参数:
primary
- Entity主键值- 返回:
- String
-
getTableOneArray
public String[] getTableOneArray(Serializable primary)
根据主键值获取Entity的表名单一元素数组- 参数:
primary
- Entity主键值- 返回:
- String[]
-
getTables
public String[] getTables(FilterNode node)
根据过滤条件获取Entity的表名- 参数:
node
- 过滤条件- 返回:
- String
-
getPrimaryColumn
public EntityColumn getPrimaryColumn()
获取主键字段的EntityColumn- 返回:
- Attribute
-
getPrimaryColumnOneArray
public EntityColumn[] getPrimaryColumnOneArray()
获取主键字段的EntityColumn单一元素数组- 返回:
- Attribute[]
-
getPrimary
public Attribute<T,Serializable> getPrimary()
获取主键字段的Attribute- 返回:
- Attribute
-
getPrimaryValue
public Serializable getPrimaryValue(T entity)
获取主键字段的值- 参数:
entity
- 实体对象- 返回:
- 主键值
-
getPrimaryOneArray
public Attribute<T,Serializable>[] getPrimaryOneArray()
获取主键字段的Attribute单一元素数组- 返回:
- Attribute[]
-
forEachAttribute
public void forEachAttribute(BiConsumer<String,Attribute<T,Serializable>> action)
遍历数据库表对应的所有字段, 不包含@Transient字段- 参数:
action
- BiConsumer
-
getAttribute
public Attribute<T,Serializable> getAttribute(String fieldname)
根据Entity字段名获取字段的Attribute- 参数:
fieldname
- Class字段名- 返回:
- Attribute
-
getUpdateAttribute
public Attribute<T,Serializable> getUpdateAttribute(String fieldname)
根据Entity字段名获取可更新字段的Attribute- 参数:
fieldname
- Class字段名- 返回:
- Attribute
-
getSQLColumn
public String getSQLColumn(String tabalis, String fieldname)
根据field字段名获取数据库对应的字段名- 参数:
tabalis
- 表别名fieldname
- 字段名- 返回:
- String
-
getSQLValue
public Object getSQLValue(String fieldname, Serializable fieldvalue)
字段值转换成数据库的值- 参数:
fieldname
- 字段名fieldvalue
- 字段值- 返回:
- Object
-
formatSQLValue
public CharSequence formatSQLValue(String fieldname, Serializable fieldvalue, BiFunction<EntityInfo,Object,CharSequence> sqlFormatter)
字段值转换成带转义的数据库的值- 参数:
fieldname
- 字段名fieldvalue
- 字段值sqlFormatter
- 转义器- 返回:
- CharSequence
-
formatSQLValue
public CharSequence formatSQLValue(Object value, BiFunction<EntityInfo,Object,CharSequence> sqlFormatter)
字段值转换成带转义的数据库的值- 参数:
value
- 字段值sqlFormatter
- 转义器- 返回:
- CharSequence
-
getSQLValue
public <F> Serializable getSQLValue(Attribute<T,F> attr, T entity)
字段值转换成数据库的值- 类型参数:
F
- 泛型- 参数:
attr
- Attributeentity
- 记录对象- 返回:
- Object
-
formatSQLValue
public <F> CharSequence formatSQLValue(Attribute<T,F> attr, T entity, BiFunction<EntityInfo,Object,CharSequence> sqlFormatter)
字段值转换成带转义的数据库的值- 类型参数:
F
- 泛型- 参数:
attr
- Attributeentity
- 记录对象sqlFormatter
- 转义器- 返回:
- CharSequence
-
getFieldValue
public Serializable getFieldValue(Attribute<T,Serializable> attr, T entity)
数据库的值转换成数字段值- 参数:
attr
- Attributeentity
- 记录对象- 返回:
- Object
-
getPrimaryField
public String getPrimaryField()
获取主键字段名- 返回:
- String
-
getPrimarySQLColumn
public String getPrimarySQLColumn()
获取主键字段的表字段名- 返回:
- String
-
getPrimarySQLColumn
public String getPrimarySQLColumn(String tabalis)
获取主键字段的带有表别名的表字段名- 参数:
tabalis
- 表别名- 返回:
- String
-
formatSQLValue
protected CharSequence formatSQLValue(String sqlColumn, Attribute<T,Serializable> attr, ColumnValue cv, BiFunction<EntityInfo,Object,CharSequence> formatter)
拼接UPDATE给字段赋值的SQL片段- 参数:
sqlColumn
- 表字段名attr
- Attributecv
- ColumnValueformatter
- 转义器- 返回:
- CharSequence
-
formatColumnFuncNodeSQLValue
protected CharSequence formatColumnFuncNodeSQLValue(Attribute<T,Serializable> attr, String tabalis, ColumnFuncNode node, BiFunction<EntityInfo,Object,CharSequence> formatter)
-
formatColumnExpNodeSQLValue
protected CharSequence formatColumnExpNodeSQLValue(Attribute<T,Serializable> attr, String tabalis, ColumnExpNode node, BiFunction<EntityInfo,Object,CharSequence> formatter)
-
formatColumnNameNodeSQLValue
protected CharSequence formatColumnNameNodeSQLValue(Attribute<T,Serializable> attr, String tabalis, ColumnNameNode node, BiFunction<EntityInfo,Object,CharSequence> formatter)
-
formatColumnStringNodeSQLValue
protected CharSequence formatColumnStringNodeSQLValue(Attribute<T,Serializable> attr, String tabalis, ColumnStringNode node, BiFunction<EntityInfo,Object,CharSequence> formatter)
-
formatColumnNumberNodeSQLValue
protected CharSequence formatColumnNumberNodeSQLValue(Attribute<T,Serializable> attr, String tabalis, ColumnNumberNode node, BiFunction<EntityInfo,Object,CharSequence> formatter)
-
getAttributes
protected Map<String,Attribute<T,Serializable>> getAttributes()
获取所有数据表字段的Attribute, 不包含@Transient字段- 返回:
- Map
-
isLoggable
public boolean isLoggable(Logger logger, Level l)
判断日志级别- 参数:
logger
- Loggerl
- Level- 返回:
- boolean
-
isNotNullable
public boolean isNotNullable(String fieldname)
-
isNotNullable
public boolean isNotNullable(Attribute<T,Serializable> attr)
-
isNotNullJson
public boolean isNotNullJson(Attribute<T,Serializable> attr)
-
isLoggable
public boolean isLoggable(Logger logger, Level l, String str)
判断日志级别- 参数:
logger
- Loggerl
- Levelstr
- String- 返回:
- boolean
-
-