У меня есть четыре таблицы:HQL: Fetch Регистрация Коллекции из Eager таблицы
RootNode // Will return multiple root nodes
SubNode // Will return one sub node per root node
SubNodeChildren1 // Will return multiple for each sub node
SubNodeChildren2 // Will return multiple for each sub node
и аналогичную структуру лица:
RootNode -> SubNode -> SubNodeChildren1
-> SubNodeChildren2
мне нужен один запрос, который будет возвращать все RootNodes
в таблице с его SubNode
и SubNode
дети инициализированы. SubNode
с нетерпением ждет, но дети SubNode
ленивы.
Я знаю, как написать запрос, который будет LEFT OUTER JOIN FETCH
непосредственными дочерними элементами таблицы и инициализировать их соответственно. Тем не менее, я не знаю, как захватить детей таблицы, которая с нетерпением вывешена из таблицы верхнего уровня.
Я пытался что-то вроде:
SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
но, это всегда дает мне ошибку, что владелец не является частью SELECT.
Любая помощь очень ценится.
+1 Интересно, почему [вложенные попытки присоединения] (http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Nested_Joins) не разрешены в JPA. –