У меня есть четыре таблицы:
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.
Любая помощь очень ценится.