我在tomcat上部署以下查询时遇到异常:
@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);
该例外是:
org.hibernate.hql.internal.ast.QuerySyntaxException:期待CLOSE,找到'('靠近第1行,第54列[select 来自RequestDbo的max(cast(substring(r.reference,9,4)as decimal(4,0))) r where substring(r.reference,0,9)=:referenceRoot]
直接在sql server上执行时,查询是可以的。
我看到我的hql中没有语法错误...
有什么想法吗?
答案 0 :(得分:0)
Hibernate在JPQL查询中不支持这种转换as decimal(4,0)
。这里有四个选项作为解决方法:
我还建议你看一下这个问题this question。祝你好运!