2013-06-24 4 views
0

Я хотел бы получить список назначений из GAE под определенным Merchant и сортировать по по времени даты она была сделана (dateLog):Сортировки Google App Engine

PersistenceManager pm = PMF.get().getPersistenceManager(); 
String query = "select from " + Appointment.class.getName(); 
query += " where merchant == '" + session.getAttribute("merchant") + "'"; 
query += " order by dateLog desc range 0,5"; 
List<Appointment> appointment = (List<Appointment>) pm.newQuery(query).execute(); 

Однако, он возвращает сообщение об ошибке, и Я проверял/дважды проверял много раз безрезультатно. Кто-нибудь может помочь? Я в тупике.

+0

это то, что он говорит в журнале ошибок: 'Предлагаемый индекс для этого запроса: ' – Melvin

ответ

0

Вы должны указать предлагаемый индекс для хранилища данных в WEB-INF/datastore-indexes.xml в каталоге вашего приложения war/. XML выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<datastore-indexes autoGenerate="true"> 
    <datastore-index kind="Appointment" ancestor="false" source="manual"> 
    <property name="merchant" direction="asc"/> 
    <property name="dateLog" direction="desc"/> 
    </datastore-index> 
</datastore-indexes> 

Ссылка: https://developers.google.com/appengine/docs/java/config/indexconfig

+0

Привет, Ниджин, спасибо за возвращение. Datestore-indexes.xml не существует в моей папке WEB-INF, и я создал его с помощью вышеуказанного кода, который он все еще не работает. Любая идея? – Melvin

+0

Вы перераспределили свое приложение? После того как вы переустановили новый файл в своем приложении, вы видите индекс в разделе «Индексы» консоли администратора App Engine? –

0

Если вы проверить URL перед загрузкой на сервер моторного App, то индексный файл будет автоматически генерируются. Запустите на сервере разработки и нажмите URL-адрес, который показывает вам ошибку. Он будет генерировать файл и при развертывании на сервере приложений, индексы будут построены и еще одна вещь. Потребуется время, которое вы можете увидеть в индексах хранилища данных (Building и Обслуживание) в консоли администратора Google App Engine.