2012-04-15 58 views
0

我見過很多示例,但似乎沒有一個適用於我的問題。我在GAE(Java)中使用JDO。我沒有找到任何錯誤消息。我只是沒有得到結果,當我知道應該有或者結果匹配具有dispatchId的空List的對象時。任何幫助將不勝感激!無法查詢列表<String> GAE中的子字段JDO

這裏是我的相關類代碼:

public class Department { 

    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Long id; 

... 

    // a list of codes that a department might be identified by 
    @Persistent 
    private List<String> dispatchId; 

} 

我試圖找到一個部門,其dispatchId列表包含特定dispatchId代碼。我的Java servlet代碼是:

String dispatchId = "1353000"; // may contain letters and/or numbers 
Query q = pm.newQuery(Department.class, ":dispatchId.contains(dispatchId)"); 
@SuppressWarnings("unchecked") 
List<Department> depts = (List<Department>) q.execute(dispatchId); 

在GAE數據存儲瀏覽器(住在GAE)爲我的測試部門dispatchId場看起來像這樣(的情況下,這會有所幫助):

[u'1353000' , u'0566940' ,u'0566936' ,u'1368496' ]再次

感謝您的任何輸入...約翰

回答

3

你好你還在尋找答案?

這裏是它的一個解決方案:

String dispatchId = "someId"; 
Query query = pm.newQuery(Department.class); 
query.setFilter("dispatchId == '"+ dispatchId + "'"); 
List<Department> depts = (List<Department>) query.execute(); 

在這裏,您將需要一個單引號包圍參數。