0

Userその下にオブジェクトのコレクションがあるオブジェクトがありTransactionます。

オブジェクトのオブジェクトIDを保存し、Userオブジェクトの下でトランザクションを合計Userするためのクエリが必要になりました。

    @Persistable
    public class User {
      private String username;
      private Collection<Transaction> transactions
      //...getter/setters...
    }

    @Persistable
    public class Transaction {
      private int txnAmount;
      //...getter/setter...
    }

'のオブジェクトIDが与えられた場合、コレクション内Userのすべて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でUserオブジェクトをクエリできます)。しかし、query.execute()メソッドで例外が発生します。

javax.jdo.JDOException:メソッド "JDOHelper.getObjectId"の呼び出しはnullですが、これは現在SODAクエリではサポートされていません

データストアとしてDB4Oを使用し、JDO実装としてDataNucleus 2.2.1

4

1 に答える 1

1

この問題は、以下のバグレポートに関連していると強く感じています。

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

于 2011-02-05T13:07:15.620 に答える