Учитывая классы Foo, Bar, которые имеют отображения спящего режима в таблицы Foo, A, B и C
public class Foo {
Integer aid;
Integer bid;
Integer cid;
...;
}
public class Bar {
A a;
B b;
C c;
...;
}
Я строю список fooList произвольного размера, и я хотел бы использовать hibernate для получения списка, где результирующий список будет выглядеть примерно так:
Bar[1] = [X1,Y2,ZA,...]
Bar[2] = [X1,Y2,ZB,...]
Bar[3] = [X1,Y2,ZC,...]
Bar[4] = [X1,Y3,ZD,...]
Bar[5] = [X2,Y4,ZE,...]
Bar[6] = [X2,Y4,ZF,...]
Bar[7] = [X2,Y5,ZG,...]
Bar[8] = ...
Где каждый Xi, Yi и Zi представляет уникальный объект.
Я знаю, что могу перебрать fooList и получить каждый список и вызвать barList.addAll (...), чтобы создать список результатов примерно так:
List<bar> barList.addAll(s.createQuery("from Bar bar where bar.aid = :aid and ... ")
.setEntity("aid", foo.getAid())
.setEntity("bid", foo.getBid())
.setEntity("cid", foo.getCid())
.list();
);
Есть ли какой-нибудь более простой способ, в идеале тот, который лучше использует hibernate и делает минимальное количество вызовов базы данных?
Я что-то упустил? Разве гибернация не подходит для этого?