2013-06-24 5 views
0

Je souhaite obtenir une liste des rendez-vous de GAE sous spécifique Merchant et trier selon le moment de la date à laquelle il a été fait (dateLog):Trier 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(); 

Cependant, il renvoie l'erreur, et J'ai vérifié/double vérifié plusieurs fois en vain. Quelqu'un peut-il aider? Je suis perplexe.

+0

Voici ce que dit le journal des erreurs: 'L'index suggéré pour cette requête est: ' – Melvin

Répondre

0

Vous devez spécifier l'index suggéré pour le magasin de données dans WEB-INF/datastore-indexes.xml, dans le répertoire war/ de votre application. Le XML ressemble à ceci:

<?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> 

Référence: https://developers.google.com/appengine/docs/java/config/indexconfig

+0

Salut Nijin, merci de votre retour. Un datestore-indexes.xml n'existe pas dans mon dossier WEB-INF, et je l'ai créé avec le code ci-dessus, il ne fonctionne toujours pas ... une idée? – Melvin

+0

Avez-vous redéployé votre application? Après avoir redéployé avec le nouveau fichier dans votre application, voyez-vous maintenant l'index dans la section "Index" de la console d'administration App Engine? –

0

Si vous testez l'URL avant de télécharger vers le serveur App Engine, puis le fichier index sera généré automatiquement. Exécuter dans le serveur de développement et appuyez sur l'URL qui vous montre l'erreur, il va générer le fichier et lorsque vous déployez sur le serveur App Engine, les index seront construits et encore une chose, il faudra du temps que vous pouvez voir dans Datastore Indexes (Building et service) dans la console d'administration Google App Engine.