Google AppEngine JDO Persistence FK Arrays - PullRequest
0 голосов
/ 07 июня 2010

Я надеюсь, что кто-то видел это.Я не нашел никаких подсказок в Google.

Я использую Google AppEngine с JDO для сохранения своих объектов.

У меня есть два объекта, Parent и Child.Каждый родительский объект имеет n дочерних объектов.

Я изначально сохранил дочерние объекты в элементе данных ArrayList в классе Parent.

Я получил исключение "java.lang.UnsupportedOperationException: FK массивы не поддерживаются"при сохранении родительского объекта.

Я отложил это до хранения более чем одной ссылки на дочерний ключ, поэтому изменил его так, чтобы вместо этого дочерние объекты хранили ключевые ссылки на родительский объект.Таким образом, существует только одна ключевая ссылка на дочерний объект вместо n ключевых ссылок на родительский объект.

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

Кто-нибудь видел это исключение или знает, что оно означает?

Ответы [ 2 ]

0 голосов
/ 09 июля 2010

По данным DataNucleus, многие вещи сохраняются по умолчанию ... и у них даже была жалоба в своем блоге по поводу руководства на сайте движка приложений Google, в котором говорилось, что вам нужно явно пометить поля как @ Persistent.

0 голосов
/ 09 июня 2010

Я понял, что случилось.

Он не жаловался на мой ArrayList.

В моем родительском классе был элемент данных массива, к которому я не добавила аннотацию. Массивы сохраняются по умолчанию при отсутствии аннотаций.

Я добавил аннотацию @NotPersistent, и это решило мою проблему.

...