# HasManyRepository `HasManyRepository` 是用于处理 `HasMany` 关系的 `Relation Repository`。 ## 类方法 ### `find()` 查找关联对象 **签名** * `async find(options?: FindOptions): Promise<M[]>` **详细信息** 查询参数与 [`Repository.find()`](../repository.md#find) 一致。 ### `findOne()` 查找关联对象,仅返回一条记录 **签名** * `async findOne(options?: FindOneOptions): Promise<M>` <embed src="../shared/find-one.md"></embed> ### `count()` 返回符合查询条件的记录数 **签名** * `async count(options?: CountOptions)` **类型** ```typescript interface CountOptions extends Omit<SequelizeCountOptions, 'distinct' | 'where' | 'include'>, Transactionable { filter?: Filter; } ``` ### `findAndCount()` 从数据库查询特定条件的数据集和结果数。 **签名** * `async findAndCount(options?: FindAndCountOptions): Promise<[any[], number]>` **类型** ```typescript type FindAndCountOptions = CommonFindOptions ``` ### `create()` 创建关联对象 **签名** * `async create(options?: CreateOptions): Promise<M>` <embed src="../shared/create-options.md"></embed> ### `update()` 更新符合条件的关联对象 **签名** * `async update(options?: UpdateOptions): Promise<M>` <embed src="../shared/update-options.md"></embed> ### `destroy()` 删除符合条件的关联对象 **签名** * `async destroy(options?: TK | DestroyOptions): Promise<M>` <embed src="../shared/destroy-options.md"></embed> ### `add()` 添加对象关联关系 **签名** * `async add(options: TargetKey | TargetKey[] | AssociatedOptions)` **类型** ```typescript interface AssociatedOptions extends Transactionable { tk?: TargetKey | TargetKey[]; } ``` **详细信息** * `tk` - 关联对象的 targetKey 值,可以是单个值,也可以是数组。 <embed src="../shared/transaction.md"></embed> ### `remove()` 移除与给定对象之间的关联关系 **签名** * `async remove(options: TargetKey | TargetKey[] | AssociatedOptions)` **详细信息** 参数同 [`add()`](#add) 方法。 ### `set()` 设置当前关系的关联对象 **签名** * `async set(options: TargetKey | TargetKey[] | AssociatedOptions)` **详细信息** 参数同 [`add()`](#add) 方法。