Bonjour,
Dans mon application, j'ai une fonctionnalité de recherche de dossiers. J'effectue la recherche en exécutant une requête HQL qui ressemble à ceci :
Ma requête me ramene bien ce que j'attends.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select do.id, do.autorisation.type, do.autorisation.info.titulaire.nom, do.autorisation.info.numeroInfo, do.autorisation.info.titre.numeroTitre, do.situation.carac.numeroIdent, do.situation.carac.marque, ... from fr.mi.map.dossier.persistence.DossierBean do where [ici les criteres de selection]
Mais je dois gérer la pagination au niveau de mes pages JSP. J'utilise donc les methodes setFirstResult et setMaxResult de l'objet Query pour avoir plusieurs pages si le nb de resultats est trop grand. mais pour gérer la pagination, je dois aussi connaitre ne nb total d'enregistrements de ma recherche. j'execute donc une autre requête, comme ceci :
Le probleme est que la requete HQL avec le select count(*) ne ramene pas le nb qu'il faut : en effet, la requete SQL générée par Hibernate n'est pas la même dans les 2 cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select count(*) from fr.mi.map.dossier.persistence.DossierBean do where [les memes criteres que dans la premiere requete]
Dans le premier cas, la requête générée est bonne, mais dans le 2eme cas (avec le count), il manque des jointures, j'ai l'impression que comme les éléments ramenés par la clause select ne sont pas les mêmes, il ne fait que les jointures dont il a besoin pour les clauses where
Qq'un a-t-il une idée pour contourner ce problème ?
J'ai bien essayé ceci :
mais j'ai une QueryException : unexpected token; il n'a pas l'air d'aimer le count imbriqué avec l'autre requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select count(*) from ( select do.id, do.autorisation.type, do.autorisation.info.titulaire.nom, do.autorisation.info.numeroInfo, do.autorisation.info.titre.numeroTitre, do.situation.carac.numeroIdent, do.situation.carac.marque, ... from fr.mi.map.dossier.persistence.DossierBean do where [ici les criteres de selection] )
QQ'un peut-il m'aider svp ?
Partager