Если я что-то упустил, ваш запрос может быть переписан в SQL как:
SELECT
o.id,
o.amount,
sum(s.quantity*s.price),
sum(s.quantity*i.quantity*i.price)
FROM orders AS o
JOIN ordersections AS s ON s.order_id=o.id
JOIN orderitems AS i ON i.section_id=s.id
GROUP BY o.id, o.amount
В этом случае его можно переписать на HQL следующим образом:
SELECT
o.id,
o.amount,
sum(s.quantity*s.price),
sum(s.quantity*i.quantity*i.price)
FROM orders AS o
JOIN o.sections AS s
JOIN s.items AS i
GROUP BY o.id, o.amount
Если я что-то упускаю и приведенный выше запрос не возвращает того, что вы хотите, вам не повезло с преобразованием HQL, поскольку Подзапросы в HQL могут появляться только в предложениях SELECT или WHERE . Однако вы можете отобразить ваш запрос как <sql-query>
- в конце не должно быть никаких различий.