JPQL是否支持查询中相同字段的SUM和算术函数?

时间:2012-07-25 16:04:55

标签: jpa eclipselink jpql

我的查询如下:

select sum(m.value * m.currency) from bill m 

它失败并给了我这个例外:

  

java.lang.IllegalArgumentException:发生异常时   在EntityManager中创建查询:异常说明:语法错误   解析[*]处的查询语法错误。

我正在使用eclipselink。

2 个答案:

答案 0 :(得分:1)

规范将SUM表达式定义如下:

aggregate_expression ::=
  { AVG | MAX | MIN | SUM } ([DISTINCT] state_field_path_expression) |
  COUNT ([DISTINCT] identification_variable | state_field_path_expression |
         single_valued_object_path_expression)

所以不,你的查询不是有效的JPQL。但是,HQL(Hibernate JPQL变体)支持它。

答案 1 :(得分:0)

最新的EclipseLink版本(或最有可能是2.2之后的任何版本)应支持此查询。你用的是哪个版本?