J'utilise Google App Engine pour un projet et j'ai besoin de faire quelques requêtes sur la base de données. J'utilise le JDOQL pour demander la base de données. Dans mon cas, je veux obtenir l'université qui contient la sous-chaîne "tableau". Je pense que ma requête comporte une erreur car elle renvoie le nom des universités dans l'ordre alphabétique et non celui contenant la sous-chaîne.Problème avec JDOQL pour obtenir des résultats avec une demande "contient"
Query query = pm.newQuery("SELECT FROM " + University.class.getName() + " WHERE name.contains("+array+") ORDER BY name RANGE 0, 5");
Quelqu'un pourrait me dire ce qui ne va pas dans ma requête?
Nous vous remercions de votre aide!
EDIT
J'ai une liste des universités magasin et j'ai un suggestbox où l'on peut demander une université par son nom. Et je veux autocomplete le nom demandé.
Vous pouvez le remplacer par un nom aléatoire par exemple ":Michael". S'il n'y a qu'un seul paramètre dans la requête, vous n'avez pas besoin de le déclarer et votre 'tableau' sera considéré à la place de ce paramètre. voir 'paramètres implicites' dans le lien que j'ai mis dans ma réponse. – Gopi
Cela ne fonctionne pas si array est une sous-chaîne d'un nom d'université. Par exemple, si array = 'Harv', il ne retournera rien, mais si array est exactement égal au nom d'une université stockée dans la DB, cela fonctionnera. Si array = 'Harvard University' cela fonctionne ... –
oui. Je ne pense pas qu'il y ait un moyen dans l'app-engine pour rechercher la sous-chaîne ou quelque chose comme un 'LIKE' dans sql. – Gopi