2011-02-03 34 views
0

我有一個User對象,其中包含一個Transaction對象的集合。使用對象ID的JDO查詢

我存儲我的User對象的對象ID,現在需要一個查詢來總和用戶對象下的交易:

@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); 

我已驗證的用戶ID確實是一個數據庫標識符的對象,因爲它應該是(我可以用它來查詢通過ID使用它的用戶對象)。但我在query.execute()方法得到一個異常:

javax.jdo.JDOException:調用方法「JDOHelper.getObjectId」是零,但這個目前不支持SODA查詢

使用DB4O作爲數據存儲,DataNucleus將作爲2.2.1 JDO實現

回答