在我的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);
使用正确的 id 调用时,openIds 字段是一个空列表。
有谁知道是什么原因造成的?
编辑:顺便说一句,我在 Google App Engine 上运行
更新:查看数据存储查看器,我可以看到 openid 已正确存储在数据库中。所以它只是没有正确地把它拿出来......
更新2:它现在工作正常。我很确定我没有改变任何东西。我认为一定是从数据库中提取了旧版本的用户对象。在我拥有保存 openid 的代码之前放入的用户对象。一旦我擦除了数据库,一切就正常了。