运行KODO 4.2和具有低效问题查询被KODO生成。出现这种情况获取包含集合,其中该集合具有bidrectional关系回到第一个对象的对象时。

Class Classroom
{
     List<Student> _students; 
}

Class Student
{
     Classroom _classroom;
}

如果我们创建了一个获取计划通过设置以下抓取计划,让教室及其相应的学生名单:

fetchPlan.addField(Classroom.class,” _学生”);

这将导致两个查询(拿到教室,然后获得了在这些教室里的所有学生),这是我们所期望的。

但是,如果我们包括以参考回教室取我们计划在_classroom场得到通过做fetchPlan.addField填充(Student.class,“_classroom”),这将导致额外的X号查询其中X是学生在每个教室的数量。

谁能解释如何解决这一问题? KODO已经有原来的课堂,它的执行查询检索课堂对象,并将它们设置在每个学生对象的_classroom场点的对象。所以,我希望KODO只需相应地设置每个学生对象在_classroom领域的那些对象,而不是返回到数据库中。

再次,文档最缺但是从我读过它应该能够更有效地做到这一点。

Note-- EAGER_FETCH.PARALLEL被接通并且我与缓存(查询和数据高速缓存)接通和断开并且在所得到的查询没有差别尝试这样做。

有帮助吗?

解决方案

使用Oracle支持在此this--曾为是在科多4.2(最新版本)中的缺陷。解决方法是完全取出默认取组属性(不要只是将其设置为true或false)从JDO元数据文件是在双向关系的一对一方的字段。所以在上面的例子中,你会拿出对Student._classroom字段的默认取-group属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top