2016-03-26 17 views
0

Ben şu var metod tanımlanmıştır:JPQL @query neden "beklenmedik belirteç: ("

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

bu hataya neden Ancak:

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] 

Ama aşağıdaki SQL çalışıyor:

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

Eğer doğru bir şekilde anlıyorsam, JPQL'in alt sorgu ile ilgili sorunları var, bu tür bir sorguyu nasıl oluşturmalıyım o zaman?

cevap

3

Sanırım jpql, from yan tümcesiyle subselect'u desteklemez. 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.

gereğince Sen @Query ek açıklamada nativeQuery = true kullanabilir ve onun yerine özgün sorguda olarak çalıştırın veya mümkünse sorgu yeniden.

İlgili konular