1

我有一个代表钱的 BigDecimal。我希望能够在 NamedQuery 中选择它的总和,但它不会对 BigDecimals 求和。

@NamedQuery(name=Account.CALCULATE_TRANSACTIONS, query="SELECT SUM(a.credit) + SUM(a.debit) FROM Transaction a WHERE a.account.id = :accountId AND a.journalEntry.staged = false")

其中贷方和借方是 BigDecimals。这行不通。除了将它们全部拉出,迭代它们并生成总数之外,最好的方法是什么。我知道我可以做到这一点,但如果可能的话,我会在一个查询中寻找一种方法。

谢谢!

4

2 回答 2

0

只是一个更新/答案。从我研究的所有内容来看,这在 EJBQL3 中是不可能的。我不得不在命名查询的范围之外做这件事。

于 2013-04-22T18:44:30.077 回答
0

这篇文章可能很旧,但它可能对其他人有所帮助。

所以我在这里报告了同样的问题,我意识到你只能SUM在数字原始类型上使用。例如shortint、和。long_floatdouble

SUM函数无法处理null

于 2019-10-30T22:27:04.923 回答