2013-07-07 2 views
1

J'ai récemment commencé à travailler avec Appengine, et tout s'est très bien passé jusqu'à ce point. J'ai utilisé jusqu'à deux filtres sur une requête plusieurs fois, mais avec un troisième filtre, la requête semble ignorer un de mes filtres. C'est toujours le même filtre qui est ignoré quel que soit l'ordre dans lequel j'ai placé les filtres. Celui qui est ignoré est le filtre "Room".La requête Appengine semble ignorer un de mes filtres (Java)

Voici mon code:

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()); 

Il y a aussi des entrées dans mon magasin de données avec « Chambre (82) », et cette requête renvoie ceux aussi bien.

J'allais publier une capture d'écran de ma banque de données, mais elle ne me le laissera pas puisque ceci est mon premier article.

Merci!

+0

Est-ce en développement ou en production? Si ce n'est pas le cas, assurez-vous que les index ont été construits. –

+0

Je l'ai testé dans l'environnement de développement et dans l'environnement de production. Les index feraient-ils complètement ignorer un filtre? Je pensais que les index aidaient simplement la requête à s'exécuter plus rapidement. –

+0

recevez-vous une exception d'index introuvable? pouvez-vous s'il vous plaît poster votre modèle ici. –

Répondre

0

Avez-vous essayé d'utiliser .addFilter au lieu de .setFilter?

Bien que addFilter est dépréciée de sorte qu'il serait plus approprié d'utiliser setFilter avec CompositeFilterOperator.and (filtre ...)

Exemples sur: Datastore Queries documentation.

+0

Oui, j'ai essayé d'utiliser addFilter et j'ai eu le même problème. –