В HQL нельзя использовать подзапросы в предложении FROM
.
В этом конкретном случае (с having count(U.pageId) = 1
) тот же результат должен быть получен с помощью следующего запроса (хотя я не уверен в производительности):
SELECT count(u) FROM Url u WHERE u.pageType = 2 AND
1 = (SELECT count(uu) FROM Url uu WHERE u.pageId = uu.pageId)
Если это не подходит, вы можете использовать session.createSQLQuery()
.