2011-01-09 3 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 구문을 혼동 할 수 있다고 생각 :

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

JDO : this 페이지에서

JPA를 예를 참조하십시오

Query q = pm.newQuery(
    "select from Person where :p1.contains(favoriteFood) order by favoriteFood, age"); 
q.execute(Arrays.asList("cheeseburger", "pizza", "fried chicken")); 
관련 문제