Class HasMany<S, T, SourceKey, TargetKey, TargetPrimaryKey>

One-to-many association. See Model.hasMany

Like with HasOne, the foreign key will be defined on the target model.

In the API reference below, add the name of the association to the method, e.g. for User.hasMany(Project) the getter will be user.getProjects(). If the association is aliased, use the alias instead, e.g. User.hasMany(Project, { as: 'jobs' }) will be user.getJobs().

Type Parameters

  • S extends Model = Model

    The model on which Model.hasMany has been called, on which the association methods will be added.

  • T extends Model = Model

    The model passed to Model.hasMany. This model will receive the Foreign Key attribute.

  • SourceKey extends AttributeNames<S> = any

    The name of the attribute that the foreign key in the target model will reference.

  • TargetKey extends AttributeNames<T> = any

    The name of the Foreign Key attribute on the Target model.

  • TargetPrimaryKey extends AttributeNames<T> = any

    The name of the Primary Key attribute of the Target model. Used by HasManySetAssociationsMixin & others.




inverse: BelongsTo<T, S, TargetKey, SourceKey>
isAliased: boolean
isSelfAssociation: boolean
options: NormalizedHasManyOptions<SourceKey, TargetKey>
parentAssociation: null | Association<Model<any, any>, Model<any, any>, string, NormalizedAssociationOptions<string>>

A reference to the association that created this one.

source: ModelStatic<S>
target: ModelStatic<T>


  • get associationType(): string
  • The type of the association. One of HasMany, BelongsTo, HasOne, BelongsToMany

    Returns string

  • get name(): {
        plural: string;
        singular: string;
  • Returns {
        plural: string;
        singular: string;

    • plural: string
    • singular: string


  • Associate one or more target rows with this. This method accepts a Model / string / number to associate a single row, or a mixed array of Model / string / numbers to associate multiple rows.


    • sourceInstance: S

      the source instance

    • Optional rawTargetInstances: AllowIterable<T | Exclude<T[TargetPrimaryKey], any[]>>

      A single instance or primary key, or a mixed array of persisted instances or primary keys

    • Optional options: HasManyAddAssociationsMixinOptions<T> = {}

      Options passed to target.update.

    Returns Promise<void>

  • Set the associated models by passing an array of persisted instances or their primary keys. Everything that is not in the passed array will be un-associated


    • sourceInstance: S

      source instance to associate new instances with

    • targets: null | AllowIterable<T | Exclude<T[TargetPrimaryKey], any[]>>

      An array of persisted instances or primary key of instances to associate with this. Pass null to remove all associations.

    • Optional options: HasManySetAssociationsMixinOptions<T>

      Options passed to target.findAll and update.

    Returns Promise<void>

Generated using TypeDoc