Identity Map связывает ORM-идентичность строки с одним живым persistent-объектом внутри Session. Повторная загрузка той же сущности использует этот объект, чтобы не появлялись конфликтующие копии состояния.
Что такое паттерн Identity Map в SQLAlchemy и как он гарантирует уникальность объектов в памяти сессии?
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.