Java 使用对象ID的JDO查询
我有一个Java 使用对象ID的JDO查询,java,jdo,jdoql,Java,Jdo,Jdoql,我有一个User对象,它下面有一组Transaction对象 我为我的用户对象存储对象ID,现在需要一个查询来对用户对象下的事务进行求和: @Persistable public class User { private String username; private Collection<Transaction> transactions //...getter/setters... } @Persistabl
User
对象,它下面有一组Transaction
对象
我为我的用户
对象存储对象ID,现在需要一个查询来对用户对象下的事务进行求和:
@Persistable
public class User {
private String username;
private Collection<Transaction> transactions
//...getter/setters...
}
@Persistable
public class Transaction {
private int txnAmount;
//...getter/setter...
}
我已经验证了userID确实是一个数据库标识符对象(我可以使用它通过ID查询用户对象)。但是我在query.execute()方法中遇到一个异常:
javax.jdo.JDOException:方法“JDOHelper.getObjectId”的调用为null,但SODA查询当前不支持这种调用
使用DB4O作为数据存储,DataNucleus 2.2.1作为JDO实现我强烈感觉到这个问题与下面的bug报告有关:
Query query = pm.newQuery(User.class);
query.setFilter("JDOHelper.getObjectId(this) == :userIDParam");
query.setResult("sum(transactions.credits)");
query.execute(userID);