2016-03-26 11 views
0

私はメソッド定義された次のいる:それは、このエラーが発生しかしJPQL @query "予期しないトークンを:(" 原因

@Query("SELECT AVG(total) FROM (SELECT COUNT(t.name) total FROM DataTable t GROUP BY DATE(actiontime)) result") 
Long countAvg(); 

を:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected  token: (near line 1, column 24 [SELECT AVG(total) FROM (SELECT  COUNT(t.name) total FROM backend.DataTable t GROUP BY  DATE(actiontime)) result] 

しかし、次のSQLが正常に動作します:

SELECT AVG(total) FROM (SELECT COUNT(NAME) total FROM DATA_TABLE GROUP BY DATE(actiontime)) result 

私が正しく理解している場合、JPQLはサブクエリに問題があります。このような種類のクエリを作成するにはどうすればよいですか?

答えて

3

from節をサポートしていないと思います。 jpa docs

Subqueries are restricted to the WHERE and HAVING clauses in this release. Support for subqueries in the FROM clause will be considered in a later release of the specification.

あたりとして、あなたは@Query注釈でnativeQuery = trueを使用することができますし、代わりにネイティブクエリとしてそれを実行するか、可能な場合は、クエリを書き直します。

関連する問題