intermediate

Repositories

Используйте repositories для aggregate persistence operations, избегая service layers, которые становятся thin ORM wrappers.

Repository TypeORM даёт CRUD и кастомные запросы для сущности. Удобно для простой персистентности, но сервисам нужны ясные границы — не каждый запрос в generic base repository.

					const repo = manager.getRepository(Order);
await repo.find({ where: { status: 'open' }, relations: ['customer'] });
				

На интервью: кастомные методы repository, `EntityManager` в транзакциях, когда лучше query builder.

Типовые ошибки: глобальный repository внутри транзакции в обход transactional manager; generic-обёртки без политики.

Компромисс — быстрый CRUD против корректного доступа в транзакции.

Чеклист:

  • Transaction-scoped managers.
  • Запросы под use case.
  • Без generic без политики.
  • Query builder для сложного SQL.