1

私は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 = ?]

ありがとう

編集 :

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) = ?
)
4

1 に答える 1

1

Hibernate のドキュメントには次のように記載されています。

HQL サブクエリは、select または where 句でのみ発生することに注意してください。

http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#queryhql-subqueries

tableしかし、 がマップされたエンティティであると仮定すると (そうですか? )、これを行うことができます (テストされていません):

select count(aa)
from table aa 
where rd_context = :param1 
group by inscription
having max(wrd_step) = :param2
于 2013-06-11T21:27:25.383 に答える