Я пытаюсь сопоставить результат левого соединения SQL со структурой объекта вида parent -> [child] , где условие в запросе SQL ограничивает результат до один родитель. Результирующий набор содержит n строк, потому что есть n дочерних элементов, но, конечно, каждая строка принадлежит только одному родителю.
Я использую Hibernate и поместил @Subselect
в мою «родительскую» сущность, и это содержит весь мой запрос на левое соединение.
@Subselect("SELECT x.*, y.* FROM x INNER JOIN y on x.a = y.a WHERE x.a = 1")
public class X {
... X attributes
private List<Y>;
}
public class Y {
... Y attributes
}
Как я могу дать Hibernate команду «свернуть» столбцы с левой стороны результирующего набора в один родительский объект и объединить оставшиеся столбцы из каждой строки во множество экземпляров «child», которые добавлены в список на родительском?
Возможно ли это, или мне нужно присоединиться, используя аннотацию @OneToMany
Hibernates. Это работает для меня, но приводит к двум отдельным вызовам базы данных, что я считаю неэффективным.