TypeORM Relations

NestJS 🟡 Mid

Definition

Decorateurs (@OneToMany, @ManyToOne, @ManyToMany, @OneToOne) qui definissent les relations entre entites. Permettent le chargement eager ou lazy.

Analogie

Comme les liens de parente dans un arbre genealogique : chaque relation a un type et une direction.

Exemple de code

@Entity()
export class User {
  @OneToMany(() => Order, order => order.user)
  orders: Order[];
}

@Entity()
export class Order {
  @ManyToOne(() => User, user => user.orders)
  user: User;
}

Cas d'usage

Modeliser les associations entre tables et naviguer le graphe d'objets en TypeScript.

Anti-pattern

Charger les relations en eager par defaut, causant des requetes N+1 massives.
#database#interview