Page Contents
Home > @loopback/repository > DefaultCrudRepository > createHasManyThroughRepositoryFactoryFor
DefaultCrudRepository.createHasManyThroughRepositoryFactoryFor() method
Function to create a constrained hasManyThrough relation repository factory
Signature:
protected createHasManyThroughRepositoryFactoryFor<Target extends Entity, TargetID, Through extends Entity, ThroughID, ForeignKeyType>(relationName: string, targetRepoGetter: Getter<EntityCrudRepository<Target, TargetID>>, throughRepoGetter: Getter<EntityCrudRepository<Through, ThroughID>>): HasManyThroughRepositoryFactory<Target, TargetID, Through, ForeignKeyType>;
Parameters
Parameter | Type | Description |
---|---|---|
relationName | string | Name of the relation defined on the source model |
targetRepoGetter | Getter<EntityCrudRepository<Target, TargetID>> | |
throughRepoGetter | Getter<EntityCrudRepository<Through, ThroughID>> |
Returns:
HasManyThroughRepositoryFactory<Target, TargetID, Through, ForeignKeyType>
Example
class CustomerRepository extends DefaultCrudRepository<
Customer,
typeof Customer.prototype.id,
CustomerRelations
> {
public readonly cartItems: HasManyRepositoryFactory<CartItem, typeof Customer.prototype.id>;
constructor(
protected db: juggler.DataSource,
cartItemRepository: EntityCrudRepository<CartItem, typeof, CartItem.prototype.id>,
throughRepository: EntityCrudRepository<Through, typeof Through.prototype.id>,
) {
super(Customer, db);
this.cartItems = this.createHasManyThroughRepositoryFactoryFor(
'cartItems',
cartItemRepository,
);
}
}