Я новичок с HQL, и я пытаюсь сделать это:HQL преобразование
select count(T) from (
select inscription, max(wrd_step) as max
from table aa
where rd_context = ?
group by inscription
) as T
where T.max = ?
Ошибка:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: (near line 1, column 21 [select count(T) from(select inscription, max(wrd_step) from table aa where rd_context = ? group by inscription) as T where T.max = ?]
Благодаря
EDIT:
Запрос в HQL:
SELECT count(distinct inscription)
FROM Entity
WHERE inscription in (
select distinct inscription
from Entity
where rd_context = ?
group by inscription
having max(wrd_step) = ?
)
выберите кол (T.inscription) форма (...) как T, где T.max =? –
Для начала в HQL вам не следует запрашивать таблицы, вместо этого вы используете сущности и пути между ассоциациями. Это влияет на то, как вы структурируете свои запросы. Начните с чтения [Chapter 16 - HQL] (http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch16.html) [Справочного руководства по базовому гибернату] (http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/). Если вы не можете найти способ перевести исходный запрос, в качестве последнего средства вы можете вернуться к [Native SQL] (http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/ html/ch18.html) и или отображение объектов в представлениях базы данных. –
Да, извините, «таблица» на самом деле является сущностью. Но спасибо за дополнительную информацию. – kinaesthesia