2016-12-11 10 views
0

Я пытаюсь использовать приведенный ниже запрос SQL в датастореGoogle Appengine Datastore фильтр и направление сортировки вместе

 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.

 Смежные вопросы

  • Нет связанных вопросов^_^