HQL SUM 查询 - 意外令牌
Posted
技术标签:
【中文标题】HQL SUM 查询 - 意外令牌【英文标题】:HQL SUM Query - unexpected token 【发布时间】:2018-06-13 16:23:33 【问题描述】:我可以按如下方式执行 HQL:
select order.anticipatedMonetaryTotal.payableAmount.value from OrderType order
使用如下代码:
EntityManager e = this.entityManagerFactory.createEntityManager();
e.getTransaction().begin();
result = e.createQuery(query).getResultList();
所以,我知道order.anticipatedMonetaryTotal.payableAmount.value
是获取值(BigDecimal 值列表)的正确位置。
但是,我得到了一个:
line 1:14: unexpected token: order
antlr.NoViableAltException: unexpected token: order
对于以下查询:
select SUM ( order.anticipatedMonetaryTotal.payableAmount.value) from OrderType order
那么,我想念 SUM 表示法的什么?据我在https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-aggregation 看到的,这很简单,我看不出有任何错误。
【问题讨论】:
【参考方案1】:这不是因为 SUM 函数,这是因为 order
字。这是不能用于变量的保留字。将其更改为其他内容,例如订单类型
select SUM ( orderType.anticipatedMonetaryTotal.payableAmount.value) from OrderType orderType
这应该可以解决您的问题,因为其他一切都很好。
祝你好运。
【讨论】:
以上是关于HQL SUM 查询 - 意外令牌的主要内容,如果未能解决你的问题,请参考以下文章
HQL:选择语句以及使用“case when then”给出意外的令牌错误
org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:FETCH
org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:FROM,当尝试删除与自身连接的表时