244 votes

Comment comptons-nous les lignes en utilisant Hibernate?

Par exemple, si nous avons une table Livres, comment compterions-nous le nombre total d'enregistrements de livres avec Hibernate?

Merci

311voto

Salandur Points 3051

En supposant que le nom de classe est Book:

 return (Number) session.createCriteria("Book").setProjection(Projections.rowCount()).uniqueResult();
 

C'est au moins un nombre, très probablement un long.

103voto

marioosh Points 4673

En Java, j’ai besoin généralement retourner int et utilisez ce formulaire :

43voto

Antonio Points 2291

Voici ce que officiel hibernate docs nous dire à ce sujet:

Vous pouvez compter le nombre de résultats de la requête sans avoir à retourner:

( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()

Prooflink: http://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html#queryhql-tipstricks

Cependant, il n'est pas toujours de retour Integer de l'instance, il est donc préférable d'utiliser java.jang.Number pour la sécurité.

12voto

Jon Spokes Points 1273

Vous pouvez essayer ``

Où « Livres » sont le nom de la classe - pas la table dans la base de données

-27voto

Milos Points 1

C’est ce que j’utilise :

J’ai essayé à environ 1 000 enregistrements et il fonctionne très bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X