查詢我有一個簡單的類,下面的相關細節:App Engine的 - 使用一個類成員作爲參數
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class SimpleCategory implements Serializable{
...
public static enum type{
Course,
Category,
Cuisine
}
@Persistent
public type t;
...
}
我試圖查詢相同類型的所有SimpleCategory對象。
public SimpleCategory[] getCategories(SimpleCategory.type type) {
PersistenceManager pm = PMF.get().getPersistenceManager();
try{
Query q = pm.newQuery(SimpleCategory.class);
q.setFilter("t == categoryType");
q.declareParameters("SimpleCategory.type categoryType");
List<SimpleCategory> cats = (List<SimpleCategory>) q.execute(type);
...
}
這會導致SimpleCategory.type出現ClassNotResolvedException。在谷歌打到目前爲止,我已經找到了建議:
- 使用query.declareImports指定類即q.declareImports(「com.test.zach.SimpleCategory.type」);
- 在declareParameters
無論這些建議已經制定指定SimpleCategory的全名。通過刪除.type並重新編譯,我可以驗證declareParameters 可以看到SimpleCategory就好了,儘管事實上該方法的其餘部分完全可見,但它根本無法看到SimpleCategory.type。
我錯過了什麼?
謝謝,這似乎工作得很好,我需要重新訪問declareParameters()上的文檔,我想我錯過了一些東西。 – 2010-10-28 18:06:16