Comment Compter les lignes dans Hibernate Query Language?
J'essaie d'obtenir juste le nombre de lignes retournées plutôt que de tous les résultats de la table.
J'ai vu que cela peut être fait comme ceci:
( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()
Mais lorsque vous tentez de stocker cette requête dans un format de nombre entier(il est dit impossible de convertir de Query to Integer
)
Je suis l'aide d'une requête dynamique où les valeurs mentionnées ci-dessous la requête de ce
theQuery = "select count(*) from THM as thm " +
"join thm.TMC as tmc " +
"join tmc.TIMCC as timcc " +
"where thm.Qid = :Qid and thm.Cv = :Cv and timcc.Did = :Did and timcc.Cv= :Cv";
Query query = session.createQuery(theQuery);
query.setInteger("Qid", Integer.parseInt(Qid));
query.setInteger("Did", Did);
query.setInteger("Cv",cV);
Maintenant, comment puis-je obtenir un décompte de toutes les lignes retournées par l'utilisation d'Hibernate requête dans une variable sans l'aide de list.size
mais directement à partir de la requête?
OriginalL'auteur user1002782 | 2011-12-30
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé la requête.uniqueResult(); ? Comme votre Select count(*) va vous donner un seul nombre, vous devriez être en mesure de le récupérer avec cela comme int count = (Integer)de la requête.uniqueResult();
À compter fondée sur un des Critères que vous pouvez faire ceci:
Je suis en utilisant les Critères en ce moment donc je sais pour sûr que ça fonctionne. J'ai vu le uniqueResult() la solution sur un site web ici: http://www.jroller.com/RickHigh/entry/hibernate_pagination_jsf_datagrid_prototype1
Que faire si ma requête n'est pas Select count(*) au lieu de cela, il commence "THM"
La méthode createCriteria(Chaîne de caractères) à partir du type SharedSessionContract est obsolète.
OriginalL'auteur adreide
vous pouvez le faire
OriginalL'auteur skyblue m.
Essayer.
OriginalL'auteur Emiliano Dueñas