我有一个 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,我想要User.transactions
集合中所有Transaction.txnAmount
的总和。
我对此的看法是:
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”为 null,但 SODA 查询当前不支持此操作
使用DB4O作为数据存储,DataNucleus 2.2.1作为JDO实现
最佳答案
我强烈感觉这个问题与下面发现的错误报告有关:
关于java - 使用对象 ID 进行 JDO 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882316/