В Python, скажем, у меня есть модель класса A
, которая имеет ReferenceProperty b
для моделирования класса B
, у которого есть ReferenceProperty c
для моделирования класса C
.
Предполагая, что экземпляр A
уже существует в хранилище данных, я могу получить его, сказав:
q = A.all()
a = q.get()
Как в этом сценарии работает загрузка объекта? Извлекается ли a.b
, когда извлекается a
? Извлекается ли a.b.c
, когда извлекается a.b
? b
и c
извлекаются только при первом обращении к ним? Если бы я сохранил a
в кэше памяти, были бы ли также сохранены b
и c
? Если нет, когда они будут извлечены, когда я a
вернусь из кэша памяти?
Причина, по которой я задаю эти вопросы (помимо любопытства), заключается в том, что у меня есть объект, который я хотел бы сохранить в кэше памяти, но он связан с другим объектом (который ссылается на другой объект и т. Д.), А общий размер связанные объекты могут быть больше 1 МБ.
Спасибо!