Что такое паттерн Identity Map в SQLAlchemy и как он гарантирует уникальность объектов в памяти сессии?

Identity Map связывает ORM-идентичность строки с одним живым persistent-объектом внутри Session. Повторная загрузка той же сущности использует этот объект, чтобы не появлялись конфликтующие копии состояния.

Короткий ответ

Что ответить на собеседовании

Identity Map связывает ORM-идентичность строки с одним живым persistent-объектом внутри Session. Повторная загрузка той же сущности использует этот объект, чтобы не появлялись конфликтующие копии состояния.

Подробный разбор

Ответ с пояснениями

Identity Map связывает ORM-идентичность строки с одним живым persistent-объектом внутри Session. Повторная загрузка той же сущности использует этот объект, чтобы не появлялись конфликтующие копии состояния.

Ключ учитывает mapper и primary key, а в соответствующих сценариях identity token. Это не глобальный кеш всех запросов: произвольный SELECT может выполняться заново, а другая Session имеет собственные объекты. Expire и refresh управляют актуализацией состояния. Непривязанные и новые объекты с одинаковыми вручную заданными полями не становятся автоматически одним объектом. Identity Map не обеспечивает потокобезопасность совместного использования Session.

Источник: docs.sqlalchemy.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее