2011-01-09 13 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でINをクエリまたは低レベルのAPIを構築し使用することが可能ですキーでエンティティを検出しますか?

答えて

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")); 
関連する問題