advanced

Query builder

Переходите к TypeORM query builder, когда repository helpers плохо выражают joins, locking, pagination или partial selects.

Query builder TypeORM для сложных select, join, подзапросов, блокировок и частичных проекций, когда repository не хватает. Это проектирование SQL с алиасами и привязкой параметров.

					await dataSource
  .createQueryBuilder('order')
  .innerJoin('order.customer', 'customer')
  .where('order.status = :status', { status: 'open' })
  .setLock('pessimistic_write')
  .getMany();
				

На интервью: join, алиасы, пагинация, блокировки, выбранные столбцы, raw results, инспекция SQL.

Типовые ошибки: offset-пагинация с join неверна или медленна; raw mapping в обход предположений entity.

Компромисс — гибкость против утечек абстракции ORM.

Чеклист:

  • Привязка параметров.
  • SQL и планы.
  • Пагинация с реальной кардинальностью join.
  • Документируйте lock и изоляцию.