跳到主要内容

IRepository<T>

Defined in: packages/rxdb/src/repository/repository.interface.ts:16

数据仓库管理接口

一个 IRepository 对应一个实体的所有 CRUD + 查询能力。 适配器(rxdb-adapter-sqlite / -pglite / -supabase / -sqliteai) 通过 AdapterRepositoryConstructor 提供本接口的实现, Repository(Repository)则把"同步 + 事务 + 缓存"叠加上去。

Remarks​

不做合并:写入是逐实体的,调用方需要事务时走 TransactionExecutor; 不做订阅:本接口只承诺 Promise 形式的拉取结果,实时通知由 QueryManager 的 Observable 单独承担 —— 让两套 API 各司其职,调用方按需挑选。

Extended by​

Type Parameters​

Type Parameter
T extends EntityType

Methods​

count()​

count(options): Promise<number>;

Defined in: packages/rxdb/src/repository/repository.interface.ts:35

查询实体数量

Parameters​

ParameterTypeDescription
optionsEntityStaticType<T, "countOptions">查询选项(详见 CountOptions)

Returns​

Promise<number>

满足条件的行数


create()​

create(entity): Promise<InstanceType<T>>;

Defined in: packages/rxdb/src/repository/repository.interface.ts:43

创建实体

Parameters​

ParameterTypeDescription
entityInstanceType<T>实体实例(通常由 EntityManager.instantiate 创建)

Returns​

Promise<InstanceType<T>>

持久化完成后的实体;与入参不是同一引用(实现可换新实例)


find()​

find(options): Promise<InstanceType<T>[]>;

Defined in: packages/rxdb/src/repository/repository.interface.ts:27

查询多个实体

Parameters​

ParameterTypeDescription
optionsEntityStaticType<T, "findOptions">查询选项(详见 FindOptions)

Returns​

Promise<InstanceType<T>[]>

满足条件的实体数组;无匹配返回空数组(不抛错)

Remarks​

返回的是实体实例(带状态机),不是裸数据 —— 调用方后续 save() / remove() 等操作会沿用同一个状态对象,避免"查询回来就丢上下文"。


remove()​

remove(entity): Promise<InstanceType<T>>;

Defined in: packages/rxdb/src/repository/repository.interface.ts:60

删除实体

Parameters​

ParameterTypeDescription
entityInstanceType<T>待删除的实体(按 id 定位)

Returns​

Promise<InstanceType<T>>

删除完成后的实体(字段清空、local 置为 false)


update()​

update(entity, patch): Promise<InstanceType<T>>;

Defined in: packages/rxdb/src/repository/repository.interface.ts:52

更新实体

Parameters​

ParameterTypeDescription
entityInstanceType<T>待更新的实体(提供 id 与最新字段)
patchPartial<InstanceType<T>>字段级 patch;未列出的字段不会被改动

Returns​

Promise<InstanceType<T>>

持久化完成后的实体