Google App Engine / JDO: есть ли кеш сессии? - PullRequest
0 голосов
/ 27 августа 2009

Поскольку невозможно объединить таблицы с помощью хранилища данных Google App Engine, я перебираю список сущностей и просматриваю связанные сущности один за другим, используя значение внешнего ключа.

for (Employee staff: staffList){
   Employee manager = pm.getObjectById(Employee.class, staff.getManagerId());
}    

Есть большая вероятность, что мне понадобится одна и та же ссылка на объект более одного раза, и я не хочу дважды заходить в хранилище данных для одного и того же объекта.

Есть ли какой-то кэш сессий, который я могу разрешить, чтобы исключить дублирующиеся поиски, или я должен свернуть свой собственный?

1 Ответ

1 голос
/ 27 августа 2009

JDO спецификация предписывает кэширование экземпляров в PersistenceManager, согласно datanculeus, который предоставил помощь с функциональностью JDO ядра приложения:

ссылка на страницу кэша данных

Тем не менее, я знаю, что в реализации appengine все еще не хватает некоторых вещей, как упомянуто здесь:

Поддерживаемые движком приложения функции

Хорошая новость заключается в том, что кэширования, похоже, нет в этом списке. Плохая новость в том, что я не смог найти подтверждения, что кеширование первого уровня реализовано. Хотя это не должно быть так сложно для тестирования - время, когда ваш код получает 100 различных сущностей, затем время, когда он получает одну и ту же сущность 100 раз.

...