2016-12-11 32 views
0

我嘗試使用下面的SQL查詢的數據存儲谷歌的AppEngine數據存儲過濾和排序方向一起

 Select *from users where catagory="A" ODER BY id. 

我嘗試下面的代碼

  DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); 
    Filter filter=new FilterPredicate("catagory", FilterOperator.EQUAL, "A"); 


     Query q = new Query("users"); 
     q.setFilter(filter); 
     q.addSort("id", SortDirection.DESCENDING); 

setfilter()addsort()功能不工作一起。任何建議將不勝感激。

+1

他們是否獨立工作? – GAEfan

+0

是的,它獨立工作 – user3223016

+0

我甚至嘗試添加datastore-indexes.xml與。 user3223016

回答

0

Class DatastoreNeedIndexException

DatastoreNeedIndexException當沒有匹配指數是 找到需要索引的查詢被拋出。檢查 管理控制檯中的索引頁面以及datastore-indexes.xml文件。

在許多情況下,開發服務器會在您的應用程序需要它們時自動創建必要的索引。見Creating indexes using the development server

但是在某些情況下,自動索引更新不會發生。在這種情況下,您需要手動創建/更新索引。請參閱Creating indexes manually

在部署應用程序代碼時,更新GAE上的索引也會自動發生大部分時間,但偶爾需要手動更新。從Updating indexes

./appengine-java-sdk/bin/appcfg.sh update_indexes myapp/war 

的GAE更新索引之後,可能需要一段時間他們在serving狀態得到。在達到該狀態之前,可以看到同樣的錯誤。檢查開發者控制檯中的status of the app's indexes。也在Updating indexes中提到。

相關問題