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