EJBQL命名查询 - 如何对BigDecimal求和

时间:2012-12-13 23:04:51

标签: java ejb sum bigdecimal named-query

我有一个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。这不起作用。除了全力以赴,迭代它们并产生总数之外,最好的方法是做什么。我知道我可以做到这一点,但如果可能的话,在一个查询中寻找一种方法。

谢谢!

2 个答案:

答案 0 :(得分:0)

只是更新/回答。从我研究的所有内容来看,这在EJBQL3中是不可能的。我不得不在命名查询的范围之外完成它。

答案 1 :(得分:0)

此帖子可能很旧,但可能会对其他人有所帮助。

所以我在这里报告了同样的问题,并且我意识到只能在数字基元类型上使用SUM。例如shortintlongfloatdouble

SUM函数无法处理null