【发布时间】:2016-01-22 08:41:11
【问题描述】:
当我在 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: 期待关闭,在第 1 行第 54 列附近找到 '(' [选择 来自 RequestDbo 的 max(cast(substring(r.reference,9,4) as decimal(4,0))) r where substring(r.reference,0,9) = :referenceRoot]
尽管直接在 sql server 上执行查询是可以的。
我在我的 hql 中没有看到语法错误...
有什么想法吗?
【问题讨论】:
-
看起来你的整个查询都被 ORM 引用了
[]:[select max(cast(substring(r.reference,9,4) as decimal(4,0))) from RequestDbo r where substring(r.reference,0,9) = :referenceRoot] -
该类包含其他以相同方式签名且运行良好的查询。示例:@Query("select r from RequestDbo r")
标签: hibernate sql-server-2012 hql