2013-07-07 1 views
1

최근에 Appengine에서 작업하기 시작했습니다.이 시점까지 모든 것이 매우 원활하게 진행되었습니다. 여러 번 쿼리에 대해 최대 두 개의 필터를 사용했지만 세 번째 필터를 사용하면 쿼리가 내 필터 중 하나를 무시하는 것 같습니다. 필터를 설정하는 순서에 관계없이 항상 무시되는 필터입니다. 무시되는 필터는 "룸"필터입니다. "방 (82)"내 데이터 저장소의 항목도 있습니다Appengine 쿼리가 내 필터 중 하나를 무시하는 것 같습니다 (Java)

Query q = new Query("Schedule").setFilter(FilterOperator.EQUAL.of("FranchiseKey", "Franchise(5)")) 
      .setFilter(FilterOperator.EQUAL.of("Room", "Room(81)")) 
      .setFilter(FilterOperator.EQUAL.of("Date", date)); 
    PreparedQuery pq = datastore.prepare(q); 
    List<Entity> results = pq.asList(FetchOptions.Builder.withDefaults()); 

,이 쿼리는뿐만 아니라 사람들을 반환

여기 내 코드입니다.

나는 내 데이터 저장소의 스크린 샷을 게시하려고했으나 첫 번째 게시물이므로 내게 알려주지 않습니다.

감사합니다.

+0

dev 또는 production입니다. dev가 아닌 경우 index가 빌드되었는지 확인하십시오. –

+0

dev 환경과 프로덕션 환경에서 테스트했습니다. 인덱스로 인해 필터가 완전히 무시됩니까? 색인을 사용하면 쿼리가 더 빨리 실행될 수 있다고 생각했습니다. –

+0

색인을 찾을 수 없다는 예외가 발생하고 있습니까? 여기에 모델을 올리시겠습니까? –

답변

0

.setFilter 대신 .addFilter를 사용하려고 했습니까? 이 CompositeFilterOperator.and로에는, setFilter을 사용하는 것이 더 적합 할 수 있도록 AddFilter를가되지 않지만

(필터 ...)에

예 : Datastore Queries 문서.

+0

예, addFilter를 사용하려고했지만 동일한 문제가있었습니다. –

관련 문제