GAE JDO:第二次读取时默认获取组成员为null

时间:2012-11-11 02:40:17

标签: google-app-engine jdo datanucleus

我有一个像这样的可持续课程:

@PersistenceCapable(detachable = "true")
public class MyClass {
    ...
    @Persistent(defaultFetchGroup = "true")
    @Element(dependent = "true")
    private Set<Key> mySet = new HashSet<Key>(); 
    ...
}

我首先坚持,然后回读:

pm.getFetchPlan().setGroup(FetchPlan.DEFAULT);
pm.getFetchPlan().setMaxFetchDepth(1);
myInstance = pm.getObjectById(MyClass.class, key);

奇怪的是,这在服务器重启后第一次正常工作。但是,第二次进行查询时,mySet仍然为空。

我一直在尝试使用ArrayList,但没有运气。我完全不知道可能导致这样的行为,所以任何关于可能是什么原因的模糊指示都将非常感激。

更新

我找到了修复,但我不明白为什么会有效。如果我为User添加了一个拷贝构造函数并在读取后复制了该实例,那么它将一致地工作。我会假设有一个缓存总是把我送回同一个实例,但是通过该程序,我找不到任何将角色设置为null的代码。这可能是我忽视的副作用,还是有一个我不理解的更基本的问题?

0 个答案:

没有答案