模块 org.redkale

类 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)
      • setSubobject

        public void setSubobject​(String name,
                                 Object value)
      • 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
      • getCreator

        public Creator<T> getCreator()
        获取Entity构建器
        返回:
        Creator
      • getArrayer

        public IntFunction<T[]> getArrayer()
        获取Entity数组构建器
        返回:
        Creator
      • getType

        public Class<T> getType()
        获取Entity类名
        返回:
        Class
      • isVirtualEntity

        public boolean isVirtualEntity()
        判断Entity是否为虚拟类
        返回:
        boolean
      • isAutoGenerated

        public boolean isAutoGenerated()
      • containsDisTable

        public boolean containsDisTable​(String tableKey)
      • addDisTable

        public void addDisTable​(String tableKey)
      • removeDisTable

        public boolean removeDisTable​(String tableKey)
      • getInsertColumns

        public EntityColumn[] getInsertColumns()
      • getUpdateColumns

        public EntityColumn[] getUpdateColumns()
      • getUpdateEntityColumns

        public EntityColumn[] getUpdateEntityColumns()
      • 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<T>> getTableMap​(T... entitys)
      • 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
      • getTable

        public String getTable​(T bean)
        根据Entity对象获取Entity的表名
        参数:
        bean - Entity对象
        返回:
        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
      • getSQLValue

        public <F> Serializable getSQLValue​(Attribute<T,​F> attr,
                                            T entity)
        字段值转换成数据库的值
        类型参数:
        F - 泛型
        参数:
        attr - Attribute
        entity - 记录对象
        返回:
        Object
      • formatSQLValue

        public <F> CharSequence formatSQLValue​(Attribute<T,​F> attr,
                                               T entity,
                                               BiFunction<EntityInfo,​Object,​CharSequence> sqlFormatter)
        字段值转换成带转义的数据库的值
        类型参数:
        F - 泛型
        参数:
        attr - Attribute
        entity - 记录对象
        sqlFormatter - 转义器
        返回:
        CharSequence
      • getFieldValue

        public Serializable getFieldValue​(Attribute<T,​Serializable> attr,
                                          T entity)
        数据库的值转换成数字段值
        参数:
        attr - Attribute
        entity - 记录对象
        返回:
        Object
      • getPrimaryField

        public String getPrimaryField()
        获取主键字段名
        返回:
        String
      • getPrimarySQLColumn

        public String getPrimarySQLColumn()
        获取主键字段的表字段名
        返回:
        String
      • getPrimarySQLColumn

        public String getPrimarySQLColumn​(String tabalis)
        获取主键字段的带有表别名的表字段名
        参数:
        tabalis - 表别名
        返回:
        String
      • getAttributes

        protected Map<String,​Attribute<T,​Serializable>> getAttributes()
        获取所有数据表字段的Attribute, 不包含@Transient字段
        返回:
        Map
      • isLoggable

        public boolean isLoggable​(Logger logger,
                                  Level l)
        判断日志级别
        参数:
        logger - Logger
        l - Level
        返回:
        boolean
      • isNotNullable

        public boolean isNotNullable​(String fieldname)
      • isLoggable

        public boolean isLoggable​(Logger logger,
                                  Level l,
                                  String str)
        判断日志级别
        参数:
        logger - Logger
        l - Level
        str - String
        返回:
        boolean