我有一个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实现