advanced

Identity map

Держите one in-memory object per database row внутри request context для identity и change tracking.

Identity map гарантирует: одна строка БД → один экземпляр объекта в scope запроса. Поддерживает отслеживание изменений и согласованные object graph в Data Mapper ORM.

					Fork запроса
  load Order#1 → экземпляр A
  снова load Order#1 → тот же экземпляр A
				

На интервью: scope запроса, идентичность сущности, stale reads, сериализация, опасность глобального entity manager.

Типовые ошибки: общий identity map между запросами и утечка состояния пользователей; detached-сущности не как plain DTO.

Компромисс — согласованность object graph против дисциплины scope.

Чеклист:

  • Identity map на запрос.
  • Attached vs detached.
  • Без глобального mutable persistence state.
  • Очистка контекста после запроса.