2011-01-09 31 views
1

我试图通过Google App Engine数据存储区中的键来查询实体的集合。这是我尝试没有成功执行查询:GAE/J数据存储区:如何使用JDO构建IN查询

Query query = pm.newQuery(Fix.class); 
query.setFilter("__key__ IN param"); 
query.declareParameters("com.google.appengine.api.datastore.Key param"); 
query.execute(list); // list is an array of keys 

而我得到的错误是:

javax.jdo.JDOUserException: Portion of expression could not be parsed: IN param 

是否有可能使用建立与JDO或低级API IN询问通过键找到实体?

回答

0

您是否尝试过this page的示例?例如:

query.addFilter("__key__", Query.FilterOperator.IN, param); 

请注意,param应该是一个列表。

3

我想你可能会混淆了JDO和JPA语法:请参阅第this范例

JPA:

select from Person where 
    favoriteFood IN ('cheeseburger', 'pizza', 'fried chicken') 
    order by favoriteFood, age 

JDO:

Query q = pm.newQuery(
    "select from Person where :p1.contains(favoriteFood) order by favoriteFood, age"); 
q.execute(Arrays.asList("cheeseburger", "pizza", "fried chicken")); 
相关问题