Обязательно ли использование группы извлечения по умолчанию для дочерней сущности подразумевает недопустимое соединение в App Engine? - PullRequest
0 голосов
/ 20 сентября 2010

Я попытался добавить свойство в свой класс User, чтобы оно автоматически загружало его дочерние записи (contacts).

Согласно приведенной ниже ошибке, это кажется невозможным, по крайней мере, так, как я пытался это сделать:

 @Persistent(mappedBy = "user", defaultFetchGroup="true")
    private List<Contact> contacts;


WARNING: Meta-data warning for com.contactly.User.contacts: The datastore does not support joins and therefore cannot honor requ
ests to place related objects in the default fetch group.  The field will be fetched lazily on first access.  You can modify this warn
ing by setting the datanucleus.appengine.ignorableMetaDataBehavior property in your config.  A value of NONE will silence the warning.
  A value of ERROR will turn the warning into an exception.

Есть ли другой способ сделать это в JDO?

Ответы [ 2 ]

1 голос
/ 20 сентября 2010

Нет.Хранилище данных App Engine не поддерживает загрузку указанных объектов одновременно с результатами запроса.

0 голосов
/ 04 ноября 2010

Вы смотрели на установку максимальной глубины выборки в плане выборки PM: pm.getFetchPlan (). SetMaxFetchDepth (int)?

  • Это значение указывает, как далеко от корневого объекта связан связанныйобъекты будут выбраны.Положительное значение означает, что это число отношений будет проходить от корневого объекта.Значение -1 означает, что на выборочный обход не накладывается никаких ограничений.

Вы также можете установить глубину рекурсии в метаданных, но я этого не пробовал.

Подробнее здесь: http://www.datanucleus.org/products/accessplatform/jdo/fetchgroup.html

...