Bonjour,
Afin d'éviter de la maintenance, je tente de porter pas mal de requête SQL en JPA pour utiliser des blocs de requêtes un peu partout dans mon appli.
Posé comme çà c'est peut-être pas très clair.
Avec un exemple ce sera mieux.
J'ai un objet Commande avec un client, un numéro et une date de commande :
J'ai ensuite pour chaque commande divers articles.
Un article est représenté par un produit, un prix et lié à une commande.
Un produit est représenté par un nom.
quand j'affiche mes commandes, j'aimerai avoir le total ce celle-ci, je parcours donc les articles de ma commande et je somme les prix et j'affiche le total, ce qui donne en SQL
J'ai donc externalisé ma requête me retournant le total de la commande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select commande.numero, commande.dateCommande, commande.client, totalCommande from commandes left join ( select article.commandeId, sum(article.prix) as totalCommande from articles group by article.commandeId)
L'idée est de pouvoir la réutilisé à plusieurs endroits dans mon application.
J'ai donc créer une @NamedQuery sur mon objet article.
Le problème est maintenant de pouvoir l'appeler de partout, mais surtout de la linker aux autres requêtes existantes.
j'ai réussi à l'écrire en JPA avec l'API Criteria, donc je suis ouvert sur la solution soit en utilisant du JQL, soir SQL, soit Criteria.
D'avance merci,
HadanMarv
Partager