Interface DatabaseService

All Superinterfaces:
AutoCloseable, RepositoryFactory

public interface DatabaseService extends AutoCloseable, RepositoryFactory
数据库服务接口。

提供数据库操作的核心服务,包括仓库管理、表操作、事务管理、持久化上下文管理等功能。

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

    • getRepository

      <T, ID> Repository<T,ID> getRepository(Class<T> entityClass)
      获取标准仓库。

      如果仓库尚未创建,则自动创建并缓存。

      Type Parameters:
      T - 实体类型
      ID - 主键类型
      Parameters:
      entityClass - 实体类的 Class 对象
      Returns:
      标准仓库实例
    • getCompositeKeyRepository

      <T, K extends CompositeKey> CompositeKeyRepository<T,K> getCompositeKeyRepository(Class<T> entityClass)
      获取复合主键仓库。

      如果仓库尚未创建,则自动创建并缓存。

      Type Parameters:
      T - 实体类型
      K - 复合主键类型
      Parameters:
      entityClass - 实体类的 Class 对象
      Returns:
      复合主键仓库实例
    • getCustomRepository

      <R extends MagstarRepository> R getCustomRepository(Class<R> repositoryClass)
      获取自定义仓库。
      Type Parameters:
      R - 仓库类型
      Parameters:
      repositoryClass - 仓库类的 Class 对象
      Returns:
      自定义仓库实例
    • registerRepository

      <T, ID> void registerRepository(Class<T> entityClass, Repository<T,ID> repository)
      注册标准仓库。
      Type Parameters:
      T - 实体类型
      ID - 主键类型
      Parameters:
      entityClass - 实体类的 Class 对象
      repository - 仓库实例
    • registerCompositeKeyRepository

      <T, K extends CompositeKey> void registerCompositeKeyRepository(Class<T> entityClass, CompositeKeyRepository<T,K> repository)
      注册复合主键仓库。
      Type Parameters:
      T - 实体类型
      K - 复合主键类型
      Parameters:
      entityClass - 实体类的 Class 对象
      repository - 复合主键仓库实例
    • registerCustomRepository

      <R extends MagstarRepository> void registerCustomRepository(Class<R> repositoryClass, R repository)
      注册自定义仓库。
      Type Parameters:
      R - 仓库类型
      Parameters:
      repositoryClass - 仓库类的 Class 对象
      repository - 自定义仓库实例
    • initializeTable

      void initializeTable(Class<?> entityClass)
      初始化表。

      根据实体类定义创建数据库表。如果表已存在,则不执行任何操作。

      Parameters:
      entityClass - 实体类的 Class 对象
    • initializeTables

      void initializeTables(Class<?>... entityClasses)
      批量初始化表。
      Parameters:
      entityClasses - 实体类的 Class 对象数组
    • dropTable

      void dropTable(Class<?> entityClass)
      删除表。

      警告:此操作将删除表及其所有数据。

      Parameters:
      entityClass - 实体类的 Class 对象
    • dropTables

      void dropTables(Class<?>... entityClasses)
      批量删除表。

      警告:此操作将删除所有指定的表及其数据。

      Parameters:
      entityClasses - 实体类的 Class 对象数组
    • flush

      void flush()
      刷新持久化上下文。

      将持久化上下文中的所有待处理更改同步到数据库。

    • clear

      void clear()
      清除持久化上下文。

      清空持久化上下文,使所有托管态实体变为游离态。

    • detach

      void detach(Object entity)
      从持久化上下文中分离实体。
      Parameters:
      entity - 要分离的实体
    • contains

      boolean contains(Object entity)
      检查实体是否在持久化上下文中。
      Parameters:
      entity - 要检查的实体
      Returns:
      如果实体在持久化上下文中返回 true,否则返回 false
    • merge

      <T> T merge(T entity)
      合并实体到持久化上下文。
      Type Parameters:
      T - 实体类型
      Parameters:
      entity - 要合并的实体
      Returns:
      托管态的实体实例
    • refresh

      void refresh(Object entity)
      刷新实体状态。

      从数据库重新加载实体的最新数据。

      Parameters:
      entity - 要刷新的实体
    • executeInTransaction

      void executeInTransaction(TransactionAction action)
      在事务中执行操作(无返回值)。
      Parameters:
      action - 事务操作
    • executeInTransaction

      <R> R executeInTransaction(TransactionFunction<R> action)
      在事务中执行操作(有返回值)。
      Type Parameters:
      R - 返回值类型
      Parameters:
      action - 事务函数
      Returns:
      操作结果
    • clearRepositoryCache

      void clearRepositoryCache()
      清除所有仓库缓存。
    • clearRepositoryCache

      void clearRepositoryCache(Class<?> entityClass)
      清除指定实体类的仓库缓存。
      Parameters:
      entityClass - 实体类的 Class 对象
    • isRepositoryCached

      boolean isRepositoryCached(Class<?> entityClass)
      检查指定实体类的仓库是否已缓存。
      Parameters:
      entityClass - 实体类的 Class 对象
      Returns:
      如果已缓存返回 true,否则返回 false
    • getCachedRepositoryTypes

      Set<Class<?>> getCachedRepositoryTypes()
      获取所有已缓存的仓库类型。
      Returns:
      实体类型的集合
    • getDatabaseInfo

      DatabaseInfo getDatabaseInfo()
      获取数据库信息。
      Returns:
      数据库信息对象
    • getStatistics

      Map<String,Object> getStatistics()
      获取统计信息。
      Returns:
      包含统计数据的 Map
    • isHealthy

      boolean isHealthy()
      检查数据库服务是否健康。
      Returns:
      如果服务健康返回 true,否则返回 false
    • testConnection

      void testConnection()
      测试数据库连接。
      Throws:
      RuntimeException - 如果连接失败
    • shutdown

      void shutdown()
      关闭数据库服务。

      释放所有资源,包括连接池、缓存等。

    • getConnectionPool

      ConnectionPool getConnectionPool()
      获取连接池。
      Returns:
      连接池实例
    • getDialect

      DatabaseDialect getDialect()
      获取数据库方言。
      Returns:
      数据库方言实例
    • getEntityMapper

      EntityMapper getEntityMapper()
      获取实体映射器。
      Returns:
      实体映射器实例
    • getSqlBuilder

      SQLBuilder getSqlBuilder()
      获取 SQL 构建器。
      Returns:
      SQL 构建器实例
    • getPersistenceContext

      PersistenceContext getPersistenceContext()
      获取持久化上下文。
      Returns:
      持久化上下文实例
    • getRepositoryFactory

      RepositoryFactory getRepositoryFactory()
      获取仓库工厂。
      Returns:
      仓库工厂实例
    • getConfig

      DatabaseConfig getConfig()
      获取数据库配置。
      Returns:
      数据库配置对象
    • isClosed

      boolean isClosed()
      检查数据库服务是否已关闭。
      Returns:
      如果已关闭返回 true,否则返回 false