0

"account"라는 필드에서 소유되지 않은 관계를 필터링하는 쿼리를 통해 Datastore에서 인스턴스 목록을 가져 오려고합니다. 이 쿼리 작업 (그것이 어떤 결과를 반환) :Google App Engine + JDO + Datastore : 키 기반 필터 OR 연산자

SELECT FROM it.example.model.Entity 
WHERE (account == alias0) 
PARAMETERS com.google.appengine.api.datastore.Key alias0 
ORDER BY creationDate desc RANGE 0,10 

이 쿼리하지 (가 빈 결과 집합을 반환) 않습니다는 다음 OR 관계가 작동하지 않는 이유

SELECT FROM it.example.model.Entity 
WHERE (account == alias0 || account == alias1) 
PARAMETERS com.google.appengine.api.datastore.Key alias0, com.google.appengine.api.datastore.Key alias1 
ORDER BY creationDate desc RANGE 0,10 

나는 알아낼 수 없습니다!

도움을 주셔서 감사합니다.

답변

0

당신은 or를 사용하여 시도 할 수 :

SELECT FROM it.example.model.Entity 
WHERE (account == alias0 or account == alias1) 
PARAMETERS com.google.appengine.api.datastore.Key alias0,  
com.google.appengine.api.datastore.Key alias1 
ORDER BY creationDate desc RANGE 0,10 
+0

죄송합니다, 나는 그것을 "||"해야하므로 쿼리가 위, JDOSQL로 지정하지 않았다, 그렇지 않으면'org.datanucleus.store.query를 던졌습니다 .QueryCompilerSyntaxException' (http://db.apache.org/jdo/jdoql.html 및 https://developers.google.com/appengine/docs/java/datastore/jdo/queries 참조) –