繁体   English   中英

GAE / J数据存储区:如何使用JDO构建IN查询

[英]GAE/J datastore : how to build an IN query with JDO

我正在尝试通过Google App Engine数据存储区中的键查询实体集合。 这是我尝试执行的查询,但没有成功:

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查询?

我想你可能会混淆了JDO和JPA语法:见例子

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

您是否尝试过此页面中的示例? 就像是:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM