HQL SUM查询 - 意外令牌

时间:2018-06-13 16:23:33

标签: java hibernate hql

我可以按如下方式执行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 个答案:

答案 0 :(得分:2)

这不是因为SUM函数,这是因为order字。这是保留字,不能用于变量。更改其他内容,例如订单类型

select SUM ( orderType.anticipatedMonetaryTotal.payableAmount.value) from OrderType orderType

这可以解决你的问题,因为其他一切都很好。

祝你好运。