用JDO(Datanucleus)急切地抓取孩子

时间:2010-06-01 17:11:19

标签: java jdo datanucleus

JDO可以一次获取数据库模型的所有子项吗?

像:

class Parent {
 @Persistent(mappedBy="parent") 
 private Set<Children> children;
}

class Children {
 @Persistent
 private Parent parent;
 @Persistent
 private String name;
}

在我的情况下,我有很多父母,我立即取。然后接近他们的孩子需要花费很多时间,因为他们懒洋洋地被带走了。

JDO(Datanucleus)是否一次支持他们的提取,与父母一起支持?

我还尝试用另一个查询独立地获取所有子项,然后将它们放入Level2缓存中,但仍然可以获取它们(也许jdo不知道它们之间的关系?因为ForeignKey(parent-id)没有最初被抓了?)

如何更快地阅读数据结构?

干杯,

1 个答案:

答案 0 :(得分:4)

您使用的是Fetch Groups吗?您的Child类可能不在默认的提取组中。

  

从中检索对象时   JDO的数据存储通常不是全部   字段立即检索。这个   是因为效率目的   只有特定的字段类型   在初始访问中检索到   对象,然后是任何其他对象   访问时检索(懒惰   加载)。这组字段是   loaded称为获取组