模块 linlang.api

接口 Repository<T,ID>

类型参数:
T - 实体类型
ID - 主键类型
所有超级接口:
AutoCloseable

public interface Repository<T,ID> extends AutoCloseable
面向单一实体类型的通用数据仓库。

实体字段与数据库列的映射由数据库注解声明。查询、流与分页结果的具体一致性 由运行时实现保证。

  • 方法详细资料

    • save

      T save(T e)
      新增或更新实体。
      参数:
      e - 待保存实体
      返回:
      保存后的实体
    • deleteById

      void deleteById(ID id)
      根据主键删除实体。
      参数:
      id - 主键
    • findById

      Optional<T> findById(ID id)
      根据主键查找实体。
      参数:
      id - 主键
      返回:
      实体;不存在时为空
    • findAll

      List<T> findAll()
      查询全部实体。
      返回:
      查询结果
    • query

      Page<T> query(QuerySpec spec)
      按查询条件返回分页结果。
      参数:
      spec - 查询条件
      返回:
      分页结果
    • count

      long count()
      返回:
      当前实体表中的记录数
    • existsById

      boolean existsById(ID id)
      判断指定主键是否存在。
      参数:
      id - 主键
      返回:
      存在时为 true
    • deleteAll

      void deleteAll()
      删除全部实体。
    • saveAll

      void saveAll(Collection<T> entities)
      批量保存实体。
      参数:
      entities - 待保存实体集合
    • streamAll

      Stream<T> streamAll()
      以流形式遍历全部实体。

      调用方应关闭返回的流,以便实现释放数据库资源。

      返回:
      实体流
    • findOneWhere

      default Optional<T> findOneWhere(String column, Object value)
      查询指定列等于给定值的第一条实体。
      参数:
      column - 实体字段名或实现支持的列名
      value - 比较值
      返回:
      首条匹配实体;不存在时为空
    • flush

      default void flush()
      将当前仓库中尚未提交的修改写入数据库。
    • close

      default void close()
      关闭仓库并释放实现持有的资源。
      指定者:
      close 在接口中 AutoCloseable
    • findAllWhere

      default List<T> findAllWhere(String where, Object... params)
      按条件表达式查询实体。

      默认实现仅支持单个“字段 = ?”条件,并在内存中筛选 findAll() 的结果; 数据库运行时应覆盖此方法以执行原生参数化查询。无法识别条件时,默认实现返回全部实体。

      参数:
      where - 条件表达式
      params - 参数值
      返回:
      匹配实体列表