首页 > 解决方案 > Apache Cayenne - 批量关系设置

问题描述

我想知道 Apache Cayenne 是否有一种方法可以使用他们的 .setTo 方法来设置关系,而不会在每次调用该方法时一次拉一个对象。我正在处理数千行数据,并且每次设置关系时都必须查询对象需要几毫秒,对于这么大的数据集,这加起来需要几分钟。

我已经尝试过挖掘他们的文档,但是其中一些被抽象掉了,这使得很难在他们的文档中找到我正在寻找的东西。将不胜感激任何提示!

标签: javaapache-cayenne

解决方案


一个惯用的解决方案是在运行查询时显式预取所有关系,如果您预期访问这些关系以获得很大比例的列表对象,则该查询会为您提供原始对象列表:

List<Artist> objects = ObjectSelect.query(Artist.class)
    .prefetch(Artist.PAINTINGS.joint())
    .select(context);

推荐阅读