На моем User
классе у меня есть поле, которое представляет собой список строк:СДО - Список строк не извлекаются из базы данных
@Persistent
private List<String> openIds;
При создании нового пользователя я это сделать:
User user = new User();
user.openIds.add(openid);
pm.makePersistent(user);
Когда я ломаю после этой последней строки и смотрю, openIds
содержит openid, который я положил туда. Но, когда я позже позвоню User user = pm.getObjectById(User.class, id);
с правильным идентификатором, поле openIds - это пустой список.
Кто-нибудь знает, что может вызвать это?
EDIT: КСТАТИ Я бегу на Google App Engine
UPDATE: Глядя на зрителя датастора, я могу видеть OpenID правильно храниться в базе данных. Так что его просто не получается правильно ...
UPDATE 2: Теперь он работает отлично. Я почти уверен, что ничего не изменил. Я думаю, что, должно быть, произошло то, что из базы данных была выведена старая версия объекта пользователя. Пользовательский объект, который был вставлен до того, как я получил код, который сохраняет openid. Как только я вытерл базу данных, все работало нормально.
Нужно ли добавлять его в план по умолчанию, даже если его список строк? – Kyle
Вы имеете в виду «только список строк», который по умолчанию не используется в DFG? – DataNucleus
Заинтересованы в том, как это получается, поскольку у меня такая же проблема. Я не могу изменить список в хранилище данных, поскольку он является нулевым. Я попытался настроить fetchSize на 3, но не использовать. Было бы хорошо, если бы у кого-то было время сделать исчерпывающий пример. – Spedge