2013-07-07 71 views
1

我最近開始使用Appengine,並且在此之前一切都進行得很順利。我在查詢中多次使用了兩個過濾器,但使用第三個過濾器時,查詢似乎忽略了我的過濾器之一。無論按照什麼順序設置過濾器,始終都會忽略相同的過濾器。被忽略的是「房間」過濾器。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()); 

也有我的數據存儲與「房(82)」條目,該查詢返回那些爲好。

我打算髮布我的數據存儲的截圖,但它不會讓我看,因爲這是我的第一篇文章。

謝謝!

+0

這是在開發或生產。如果不是開發人員確保已建立索引 –

+0

我已經在開發環境和生產環境中對其進行了測試。索引會導致它完全忽略過濾器嗎?我認爲索引只是幫助查詢運行得更快。 –

+0

你是否得到任何索引未找到異常?你可以在這裏發佈你的模型嗎? –

回答

0

您是否嘗試過使用.addFilter而不是.setFilter?

雖然addFilter已被棄用,因此會更適合使用使用setfilter與CompositeFilterOperator.and(過濾器...)上

例子:Datastore Queries文檔。

+0

是的,我試圖使用addFilter和我有同樣的問題。 –

相關問題