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.