我有一個例外,當我部署在Tomcat以下查詢:QuerySyntaxException與HQL
@Query("select max(cast(substring(r.reference,9,4) as decimal(4,0))) from RequestDbo r where substring(r.reference,0,9) = :referenceRoot")
Long getMaxReference(@Param("referenceRoot") String referenceRoot);
的exeption是:
org.hibernate.hql.internal.ast.QuerySyntaxException:期望CLOSE,發現'('在第1行第54列[選擇 max(鑄造(子字符串(r.reference,9,4)爲十進制(4,0)))RequestDbo r where substring(r.reference, 0,9)=:referenceRoot]
當在sql server上直接執行查詢時,查詢就OK了。
我看到我的hql沒有語法錯誤...
任何想法?
看起來像ORM用'[]'引用了整個查詢:'[select max(cast(substring(r.reference,9,4)as decimal(4,0)))from RequestDbo r where substring r.reference,0,9)=:referenceRoot]' – lad2025
該類包含其他查詢,這些查詢以相同方式簽名並且運行良好。例如:@Query(「從RequestDbo r中選擇r」) – Maxime