在我的User
课程中,我有一个字符串列表字段:
@Persistent
private List<String> openIds;
当我创建新用户时,我这样做:
User user = new User();
user.openIds.add(openid);
pm.makePersistent(user);
当我在最后一行之后打破并查看时,openIds
包含我放在那里的openid。
但是,当我稍后使用正确的id调用User user = pm.getObjectById(User.class, id);
时,openIds字段是一个空列表。
任何人都知道会导致什么原因吗?
编辑:顺便说一下,我正在Google App Engine上运行更新:查看数据存储区查看器,我可以看到openid已正确存储在数据库中。所以它只是没有正确地把它弄出来......
更新2:现在工作正常。我很确定我没有改变任何东西。我认为必须发生的是从数据库中提取旧版本的用户对象。在我拥有保存openid的代码之前放入的用户对象。一旦我擦除了数据库,一切正常。
答案 0 :(得分:0)
不将该字段放入获取计划中? 直接访问持久字段,而不是通过setter?