java - 使用 JDO (Datanucleus) 急切地获取子项

标签 java jdo datanucleus

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

喜欢:

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

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

就我而言,我有大量的 parent ,我可以立即获取。然后访问他们的 child 需要花费很多时间,因为他们是懒惰地获取的。

JDO(Datanucleus)是否支持与父级一起立即获取?

我还尝试使用另一个查询独立地获取所有子项,然后将它们放入二级缓存中,但仍然获取它们(也许jdo不知道它们的关系?因为ForeignKey(parent-id)还没有一开始就被获取了?)

有什么想法可以更快地读取数据结构吗?

干杯,

一月

最佳答案

您正在使用 Fetch Groups ?您的子类可能不在默认的获取组中。

When an object is retrieved from the datastore by JDO typically not all fields are retrieved immediately. This is because for efficiency purposes only particular field types are retrieved in the initial access of the object, and then any other objects are retrieved when accessed (lazy loading). The group of fields that are loaded is called a fetch group

关于java - 使用 JDO (Datanucleus) 急切地获取子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951786/

相关文章:

arrays - JDO + PostgreSQL 数组

java - 从 pom.xml 生成 .pom 文件的正确方法是什么?

java - 如何在 Selenium 中将 LI 与 UL 分开

java - 为什么一个列表给了我一个值,而另一个却没有?

java - org.datanucleus.store.types.sco.simple.HashSet 无法转换为 java.util.Date

java - 将 DataNucleus DB 引擎 (Neodatis) 升级到最新版本会生成 ClassCastException

java - 在 JDO 查询中忽略大小写

java - 谷歌地图扩展

java - Google App Engine (Java) + Spring 管理的 PersistenceManager

java - 在 JDO 中迁移字段