intermediate

Entities

Маппите classes to tables через decorators, columns, relations, lifecycle hooks и database constraints.

Сущности TypeORM маппят классы на таблицы через декораторы: столбцы, relations, индексы, lifecycle hooks. Персистентность ощущается ООП, но может смешивать домен с маппингом хранения.

					@Entity()
export class Order {
  @PrimaryGeneratedColumn('uuid') id!: string;
  @Column() status!: string;
  @ManyToOne(() => Customer, (c) => c.orders) customer!: Customer;
}
				

На интервью: столбцы, relations, eager/lazy, декораторы, hooks, миграции, стоимость reflection metadata.

Типовые ошибки: декораторы вместо constraints и индексов; lazy relations с async за доступом к свойству.

Компромисс — привычный ООП-маппинг против скрытого I/O в геттерах.

Чеклист:

  • Constraints осознанно.
  • Следите за lazy relations.
  • Методы сущности без скрытых side effects.
  • Отделяйте entities от DTO API.