我有一个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。这不起作用。除了全力以赴,迭代它们并产生总数之外,最好的方法是做什么。我知道我可以做到这一点,但如果可能的话,在一个查询中寻找一种方法。
谢谢!
答案 0 :(得分:0)
只是更新/回答。从我研究的所有内容来看,这在EJBQL3中是不可能的。我不得不在命名查询的范围之外完成它。
答案 1 :(得分:0)
此帖子可能很旧,但可能会对其他人有所帮助。
所以我在这里报告了同样的问题,并且我意识到只能在数字基元类型上使用SUM
。例如short
,int
,long
,float
和double
。
SUM
函数无法处理null
值