Avec JPQL les requêtes JPQL sont données sous la forme de chaînes de caractères et les erreurs ne sont donc pas repérées à la compilation. L'API "Criteria" permet d'écrire des requêtes qui sont vérifiées à la compilation. Pensez à utiliser cette API pour vos applications professionnelles. Cette API rend l'écriture des requêtes un peu plus complexes et elle n'est pas étudiée dans ce cours, par manque de temps.
Voici quelques outils pour tester les requêtes JPQL et détecter les erreurs avant l'exécution :
- NetBeans vérifie la syntaxe des expressions JPQL si vous les écrivez directement en paramètre de la méthode
createQuery
ou dans une annotation @NamedQuery
. Si une erreur est détectée, une icône jaune est affichée dans la marge et les erreurs sont affichées si vous passez la souris sur cette icône.
- Quand vous tapez une requête JPQL vous pouvez utiliser la complétion automatique pendant que vous tapez les noms des entités, mais la complétion automatique ne marche que pour les noms d'entités.
- ** Impossible de le faire fonctionner avec les dernières versions de NetBeans... ** Un clic droit sur le fichier persistence.xml et choix "Run JPQL Query" vous permet de tester des requêtes JPQL et de voir leur traduction en SQL : https://blogs.oracle.com/geertjan/entry/test_jpql_with_netbeans_ide. Taper la requête JPQL dans la fenêtre du haut puis clic droit dans cette fenêtre et choisir "run JPQL". Dans la fenêtre du bas on peut voir le résultat de la requête ou bien la traduction de la requête JPQL en requête SQL (intéressant en cas de mauvaises performances).