J'applique l'application sur Google App Engine et je rencontre des problèmes pour obtenir des données en utilisant JDO. J'ai la classe Message, qui a la propriété private List<String> labels;
. Maintenant, je veux avoir une fonction de recherche qui prend une chaîne (label) comme paramètre et recherche tous les messages pour obtenir des messages avec l'étiquette donnée. Le problème est à la requête JDO, en ce moment je cette (chaîne this.label est un paramètre de recherche):JDO + GoogleAppEngine - classe de recherche par valeur dans la collection
String query = "select from " + Message.class.getName() + " where (labels.contains('" + this.label + "')) ";
Il fonctionne sur localhost, mais pas dans GAE (retourne NULL). Une autre (et naïve) tentative a été
query = "select from " + Note.class.getName() + " where labels=='" + this.label + "'";
Et il a également travaillé que sur localhost, non GAE
Est-ce que quelqu'un a une idée de comment faire cela? Merci pour toute aide
Aucune idée pourquoi les choses faire ou ne fonctionnent pas, mais juste pour dire que le second n'est pas valide JDOQL alors mieux vaut oublier celui-là. Oui GAE/J les gens peuvent dire qu'ils le soutiennent mais c'est une subversion de la spécification JDO. Le Collection.contains() est un appel de méthode valide – DataNucleus