Я пытаюсь объединить таблицу с результатом подзапроса (подзапрос возвращает результат с 3 столбцами) в HQL, но я получаю синтаксическую ошибку org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token
.
Похоже, INNER JOIN
не работает в HQL, как в SQL, поэтому я посмотрел на https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-subqueries, но это не помогло.
Запрос HQL
SELECT R
FROM Table R
INNER JOIN (
SELECT T.id.col1, T.id.col2, MAX(T.col3) max_num
FROM Table T
GROUP BY T.id.col1
) b ON R.id.col1 = b.id.col1 AND R.col3 = b.max_num
WHERE R.id.col3 = :param
GROUP BY R.id.col1
ORDER BY R.col3 DESC
Фактический результат
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1, column 81
Ожидаемый результат
Уникальные строки, содержащиемаксимальное значение T.col3.
Примечание. SQL-версия вышеуказанного запроса работает нормально.