Я знаю, что такое соединения и как их использовать в простом SQL, но я не могу найти никакого объяснения Интернета для запроса объекта с отношениями. Я использую entity, getList.size() для запроса объектов, у которых есть одна ассоциация ToMany или ManyToMany с моей сущностью. Мне интересно, есть ли способ запросить объект со всеми его отношениями.Внутреннее соединение JPQL и левое соединение
public Person
@OneToMany
List<Cat>
@ManyToMany
List<DormRoom>
Что делать, чтобы получить все объекты;
Person p=PersonDAO.getWithId(1L);
p.getCats.size();
p.getsDormRooms.size();
Теперь я задаюсь ГЭТ полностью evulated объект с JPQL, CriteriaBuilder и, возможно, с QueryDSL.
Так что, в принципе, мне нужно несколько запросов, чтобы получить полный объект. То, что я собираюсь сделать с 10.000 строк. –
Нет, отредактированный запрос выше вернет единый объект Person со всеми его 100 dormRooms и 100 котами, населенными. Но основной SQL-запрос, который будет выполняться Hibernate, вернет 10000 строк из-за того, как работает SQL. –
И с большим количеством отношений запросы с несколькими соединениями вызывают все больше и больше накладных расходов. Есть ли какое-либо другое оптимальное решение для этих случаев? –