0

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

4

1 回答 1

1

我有一种强烈的感觉,这个问题与下面发现的错误报告有关:

http://www.datanucleus.org/servlet/jira/browse/NUCDBFO-48

于 2011-02-05T13:07:15.620 回答