gpt4 book ai didi

java - EclipseLink 的 NamedQuery 中的 SUM 函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:48 25 4
gpt4 key购买 nike

我正在使用以下 NamedQuery 但出现错误

@NamedQueries({
@NamedQuery(name="getAvailableAmount", query="SELECT sum(tup.tran_amount) FROM TopUpResponse tup"),
@NamedQuery(name="getUpFrontDiscount", query="SELECT (sum( abs( tup.tran_amount) )*.04) FROM TopUpResponse tup WHERE tup.service='BILLPAYMENT'")
})

内部异常:FailedPredicateException(arithmeticPrimary,{ aggregatesAllowed() }?)

我尝试了以下格式,但仍然出现错误

SELECT FUNC('ABS',tup.tran_amount) FROM TopUpResponse tup

异常描述:语法错误解析查询 [getAvailableAmount: SELECT FUNC('ABS',tup.tran_amount) FROM TopUpResponse tup],第 1 行,第 11 列:[(] 处的语法错误。内部异常:MismatchedTokenException(81!=32)

问候,伊姆兰

最佳答案

这似乎是旧版本 EclipseLink 中的错误。我在 EclipseLink 2.0.0 中尝试了相同的查询。第二个命名查询和使用 FUNC 的查询完全按照您描述的第一个命名查询的方式失败。

在 EclipseLink 2.3.2 中,所有三个查询都按预期工作。所以在这些版本之间的某个地方问题是固定的。我不知道在哪个版本中引入了确切的修复。

您唯一能做的就是更新到更新版本的 EclipseLink。

关于java - EclipseLink 的 NamedQuery 中的 SUM 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com