2

我有一个像这样的持久类:

@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 添加一个复制构造函数并在读取后复制实例,它会始终如一地工作。我会假设有一个缓存总是将相同的实例交还给我,但是单步执行程序时,我找不到任何将角色设置为空的代码。这可能是我忽略的副作用还是我不理解的更基本的问题?

4

0 回答 0