advanced
Entity manager
Используйте entity manager как scoped persistence gateway для find, persist, flush и transaction orchestration.
Entity manager — scoped-шлюз для `find`, `persist`, `remove`, `flush` и транзакций. В MikroORM связан с identity map и контекстом запроса — fork на каждый запрос в web.
const em = orm.em.fork();
await em.transactional(async (tx) => {
const user = await tx.findOne(User, { id });
tx.assign(user, { name: 'Ada' });
});
На интервью: forked EM, `RequestContext`, транзакции, repository как тонкие помощники, запрет reuse между запросами.
Типовые ошибки: глобальный manager смешивает identity map пользователей; вызовы repository вне активного transaction fork.
Компромисс — эргономичный persistence API против строгой изоляции на запрос.
Чеклист:
- Fork или scope на запрос.
- Транзакции через manager.
- Тонкие явные repository.
- Передавайте transactional EM в сервисы.