我有一个User
对象,它Transaction
下面有一组对象。
我为我的User
对象存储对象 ID,现在需要一个查询来汇总User 对象下的事务:
@Persistable
public class User {
private String username;
private Collection<Transaction> transactions
//...getter/setters...
}
@Persistable
public class Transaction {
private int txnAmount;
//...getter/setter...
}
给定User
' 对象 ID,我想要集合中所有Transaction.txnAmount
' 的总和。User.transactions
我对此的看法是:
Query query = pm.newQuery(User.class);
query.setFilter("JDOHelper.getObjectId(this) == :userIDParam");
query.setResult("sum(transactions.credits)");
query.execute(userID);
我已经验证了 userID 确实是一个数据库标识符对象,因为它应该是(我可以使用它通过 ID 查询用户对象)。但我在 query.execute() 方法中遇到异常:
javax.jdo.JDOException:方法“JDOHelper.getObjectId”的调用为空,但 SODA 查询当前不支持
使用 DB4O 作为数据存储,DataNucleus 2.2.1 作为 JDO 实现