TypeORM Repository
NestJS 🟡 MidDéfinition
Pattern d'accès aux données qui fournit des méthodes CRUD (find, save, delete) pour une entité. Injecte via @InjectRepository dans les services.
Analogie
Comme un bibliothécaire spécialisé : il sait exactement comment chercher, ranger et prêter les livres de sa section.
Exemple de code
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private repo: Repository<User>,
) {}
findAll() { return this.repo.find(); }
}
Cas d'usage
Effectuer les opérations CRUD sur les entités sans écrire de SQL brut.
Anti-pattern
Termes liés
En entretien
C'est quoi le rôle du Repository dans TypeORM, et comment on l'injecte ?
Le repository fournit les méthodes CRUD (find, save, delete) pour une entité donnée, et on l'injecte dans un service avec @InjectRepository(User) sur un Repository<User>. Ça évite d'écrire du SQL brut pour les opérations courantes.
Pourquoi c'est un problème d'utiliser le repository directement dans le controller ?
Ça court-circuite le service qui doit porter la logique métier, comme si on allait directement voir le bibliothécaire sans passer par la réception. Ça rend le code plus dur à tester et mélange responsabilités HTTP et accès aux données.
Quand est-ce que tu éviterais d'utiliser le Repository standard ?
Quand j'ai besoin de requêtes complexes avec jointures ou filtres dynamiques, je passe plutôt par le QueryBuilder qui offre une API plus fine que les méthodes CRUD basiques.
Fiche mise à jour le 2026-09-27