2016-06-20 10 views
1

.im JPARepository + Hibernateを使用して、次のクエリwuthを実行します。JPARepository JPQL @query ORDER BY(ERROR:CLOSEが期待され、 'null'が見つかりました)

@Query("SELECT t0 FROM TextFragment t0 WHERE t0.id = " 
+ "(SELECT t.id FROM TextFragment t JOIN t.fragment f JOIN t.reactionsTextFragments r " 
+ "WHERE f.parent.id = :idParent AND t.codStateTextFragment = '001' " 
+ "GROUP BY r.textFragment ORDER BY COUNT(r.textFragment) DESC, t.updatedDate ASC)") 

と私は、クエリがORDER BY句とクエリの最終を読んでいないのはなぜNEXエラー

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'null' near line 1, column 254 [select count(t0) FROM com.treebuk.model.TextFragment t0 WHERE t0.id = (SELECT t.id FROM com.treebuk.model.TextFragment t JOIN t.fragment f JOIN t.reactionsTextFragments r WHERE f.parent.id = :idParent AND t.codStateTextFragment = '001' GROUP BY r.textFragment]

がありますか?私は理解していない...誰も私を助けることができますか?

答えて

1

JPQLでは、サブクエリにはORDER BYを使用できません。 BNFによると

subquery ::= simple_select_clause subquery_from_clause [where_clause] [groupby_clause] [having_clause] 

あなたのクエリは無効です。このエラーメッセージには、問題が何であるかを明示的に述べていません。

+0

応答のためのTy Neil。 JPARepositoryはこの問題を解決するため、私は理解しません。これに対する解決策はありますか?フィルタレジスタのサブクエリが必要です。ユニークな孤独は、コードのロジックを後ろに作るのですか? –

+0

「JPARepository」はJPA APIとは関係ありません。 JPQL言語仕様は非常に明確であり(Hibernateは明らかにそれに従っています)、ORDER BYはサブクエリでは不正です。あなたの注文を削除する –

+0

私は注文を取り除くことができません。実際には、私はもっと反応を持つレジスタを取得するための制限もありません。私は複雑なクエリを必要としています。 。 –

関連する問題