3

在我的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 的代码之前放入的用户对象。一旦我擦除了数据库,一切就正常了。

4

1 回答 1

0

没有将该字段放入获取计划中?直接访问持久性字段,而不是通过设置器?

于 2010-02-11T18:08:08.067 回答