我有一个代表金钱的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。这不管用。除了把它们全部拉出来,迭代并生成一个总数之外,最好的方法是什么?我知道我可以做到这一点,但如果可能的话,我正在寻找一种方法来在一个查询中做到这一点。
谢谢!
发布于 2013-04-23 02:44:30
只是更新/回答。从我所研究的一切来看,这在EJBQL3中是不可能的。我不得不在命名查询的作用域之外执行此操作。
发布于 2019-10-31 06:27:05
这篇文章可能已经过时了,但它可能对其他人有帮助。
因此,我在这里报告了同样的问题,并且我意识到您只能在数字基元类型上使用SUM。例如short,int,long,float和double。
SUM函数无法处理null值
https://stackoverflow.com/questions/13870110
复制相似问题