Interface EntityMapper


public interface EntityMapper
实体映射器接口。

负责实体类与数据库表之间的映射关系管理,包括实体注册、SQL 生成、 数据转换和生命周期回调等功能。

Since:
1.0.0
Version:
1.0.0
Author:
Berry_so
  • Method Details

    • invokePrePersist

      void invokePrePersist(Object entity)
      调用实体的持久化前回调方法。
      Parameters:
      entity - 实体对象
    • invokePostPersist

      void invokePostPersist(Object entity)
      调用实体的持久化后回调方法。
      Parameters:
      entity - 实体对象
    • invokePreUpdate

      void invokePreUpdate(Object entity)
      调用实体的更新前回调方法。
      Parameters:
      entity - 实体对象
    • invokePostUpdate

      void invokePostUpdate(Object entity)
      调用实体的更新后回调方法。
      Parameters:
      entity - 实体对象
    • invokePreRemove

      void invokePreRemove(Object entity)
      调用实体的删除前回调方法。
      Parameters:
      entity - 实体对象
    • invokePostRemove

      void invokePostRemove(Object entity)
      调用实体的删除后回调方法。
      Parameters:
      entity - 实体对象
    • invokePostLoad

      void invokePostLoad(Object entity)
      调用实体的加载后回调方法。
      Parameters:
      entity - 实体对象
    • registerEntity

      <T> TableInfo registerEntity(Class<T> entityClass)
      注册实体类,解析其映射信息。
      Type Parameters:
      T - 实体类型
      Parameters:
      entityClass - 实体类
      Returns:
      表信息对象
    • getTableInfo

      <T> TableInfo getTableInfo(Class<T> entityClass)
      获取实体类的表信息。
      Type Parameters:
      T - 实体类型
      Parameters:
      entityClass - 实体类
      Returns:
      表信息对象
    • isEntityRegistered

      boolean isEntityRegistered(Class<?> entityClass)
      判断实体类是否已注册。
      Parameters:
      entityClass - 实体类
      Returns:
      true 表示已注册
    • getRegisteredEntities

      Set<Class<?>> getRegisteredEntities()
      获取所有已注册的实体类。
      Returns:
      实体类集合
    • getRegisteredEntityCount

      int getRegisteredEntityCount()
      获取已注册实体类的数量。
      Returns:
      实体类数量
    • isValidEntity

      <T> boolean isValidEntity(Class<T> entityClass)
      验证实体类是否有效。
      Type Parameters:
      T - 实体类型
      Parameters:
      entityClass - 实体类
      Returns:
      true 表示实体类有效
    • resultSetToEntity

      <T> T resultSetToEntity(ResultSet resultSet, Class<T> entityClass) throws SQLException
      将 ResultSet 转换为实体对象。
      Type Parameters:
      T - 实体类型
      Parameters:
      resultSet - 查询结果集
      entityClass - 实体类
      Returns:
      实体对象,如果结果集为空则返回 null
      Throws:
      SQLException - 如果数据库访问错误
    • resultSetToEntityList

      <T> List<T> resultSetToEntityList(ResultSet resultSet, Class<T> entityClass) throws SQLException
      将 ResultSet 转换为实体对象列表。
      Type Parameters:
      T - 实体类型
      Parameters:
      resultSet - 查询结果集
      entityClass - 实体类
      Returns:
      实体对象列表
      Throws:
      SQLException - 如果数据库访问错误
    • entityToFieldMap

      <T> Map<String,Object> entityToFieldMap(T entity)
      将实体对象转换为字段映射。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 实体对象
      Returns:
      字段名到值的映射
    • entityToFieldMapExcludePrimaryKey

      <T> Map<String,Object> entityToFieldMapExcludePrimaryKey(T entity)
      将实体对象转换为字段映射(排除主键)。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 实体对象
      Returns:
      字段名到值的映射,不包含主键字段
    • entityToNonNullFieldMap

      <T> Map<String,Object> entityToNonNullFieldMap(T entity)
      将实体对象转换为非空字段映射。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 实体对象
      Returns:
      字段名到值的映射,只包含非 null 值的字段
    • getPrimaryKeyValues

      <T> Map<String,Object> getPrimaryKeyValues(T entity)
      获取实体的主键值映射。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 实体对象
      Returns:
      主键字段名到值的映射
    • getPrimaryKeyValue

      <T> Object getPrimaryKeyValue(T entity)
      获取实体的主键值(单一主键)。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 实体对象
      Returns:
      主键值
    • generateCreateTableSQL

      String generateCreateTableSQL(Class<?> entityClass)
      生成创建表的 SQL 语句。
      Parameters:
      entityClass - 实体类
      Returns:
      CREATE TABLE SQL 语句
    • generateCreateIndexSQL

      List<String> generateCreateIndexSQL(Class<?> entityClass)
      生成创建索引的 SQL 语句列表。
      Parameters:
      entityClass - 实体类
      Returns:
      CREATE INDEX SQL 语句列表
    • generateDropTableSQL

      String generateDropTableSQL(Class<?> entityClass)
      生成删除表的 SQL 语句。
      Parameters:
      entityClass - 实体类
      Returns:
      DROP TABLE SQL 语句
    • tableExists

      boolean tableExists(Connection connection, Class<?> entityClass) throws SQLException
      判断表是否存在。
      Parameters:
      connection - 数据库连接
      entityClass - 实体类
      Returns:
      true 表示表已存在
      Throws:
      SQLException - 如果数据库访问错误
    • createTableIfNotExists

      void createTableIfNotExists(Connection connection, Class<?> entityClass) throws SQLException
      如果表不存在则创建表。
      Parameters:
      connection - 数据库连接
      entityClass - 实体类
      Throws:
      SQLException - 如果创建表失败
    • dropTable

      void dropTable(Connection connection, Class<?> entityClass) throws SQLException
      删除表。
      Parameters:
      connection - 数据库连接
      entityClass - 实体类
      Throws:
      SQLException - 如果删除表失败
    • recreateTable

      void recreateTable(Connection connection, Class<?> entityClass) throws SQLException
      重建表(先删除后创建)。
      Parameters:
      connection - 数据库连接
      entityClass - 实体类
      Throws:
      SQLException - 如果重建表失败
    • getDialect

      DatabaseDialect getDialect()
      获取数据库方言。
      Returns:
      数据库方言对象