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