Обработчик результатов Apache Cayenne и соединение с предварительной выборкой

#join #apache-cayenne

#Присоединиться #apache-cayenne

Вопрос:

Мы используем Cayenne с чем-то вроде

     ResultIterator<SomeMain> lvSomeMainList = ObjectSelect
                               .query(Anlstamm.class)
                               .and(SomeMain.ORGUNIT_NR.eq(pvOrgUnitNr))
                               .prefetch(SomeMain.RELATION1.joint())
                               .prefetch(SomeMain.RELATION2.joint())
                               .prefetch(SomeMain.RELATION3.joint())
                               .iterator(gvContext);
 

    for (SomeMain bvSomeMain: lvSomeMainList) {

                           bvSomeMain.getMethod_relation1();
                            ...
    }
  

Cayenne выполняет правильные объединения на уровне базы данных, но вместо полного разрешения bvSomeMain getMethod_relation1 запускает новый select с уже предварительно выбранным ОТНОШЕНИЕМ1.

Мы используем Apache Cayenne 4.0

Спасибо за подсказку.

Комментарии:

1. Здесь нет ничего очевидного (предварительные выборки работают довольно надежно). Какие-либо предупреждения в программе моделирования? Не могли бы вы опубликовать сведения о сопоставлении для исходного и целевого объекта этого отношения. Также это проблема с одним конкретным отношением или со всеми 3 из них?

2. Кроме того, если это большая выборка, возможно, извлеченные объекты удаляются из кэша моментальных снимков довольно рано (в этом случае вы можете увеличить размер кэша моментальных снимков).