Я в процессе миграции старого "классического ASP" приложения на J2EE / Hibernate.
У меня проблема со следующими типами операторов SQL:
SELECT parent.id, parent.name, parent.column1, count(child.id) AS no_of_children
FROM parent
INNER JOIN child ON child.parent_id = parent.id
GROUP BY parent.id, parent.name, parent.column1
Как мне выразить что-то подобное в HQL? Я попытался отобразить дочерние элементы как коллекцию (используя многие-к-одному) и получить количество дочерних элементов из размера коллекции, но затем Hibernate должен загрузить все «дочерние» сущности для каждого родителя отдельно.
Это приводит к выполнению около 1000 запросов к БД вместо 1 со всеми вытекающими проблемами с производительностью.
Есть ли способ обойти это?