Por ejemplo, si tenemos una tabla Libros, ¿cómo contaríamos el número total de registros de libros con hibernación?¿Cómo contamos las filas usando Hibernate?
Respuesta
Suponiendo que el nombre de la clase es del libro:
return (Number) session.createCriteria("Book").setProjection(Projections.rowCount()).uniqueResult();
es por lo menos un Number
, muy probablemente un Long
.
Usted podría intentar count(*)
Integer count = (Integer) session.CreateQuery("select count(*) from Books").uniqueResult();
Dónde Books
es el nombre de la class
- no la tabla en la base de datos.
En Java i en general tienen que volver int y el uso de esta forma:
int count = ((Long)getSession().createQuery("select count(*) from Book").uniqueResult()).intValue();
La respuesta aceptada para esta pregunta no funcionó para mí, pero la tuya sí. ¡Gracias! –
¿es esta la manera más rápida y económica de obtener el conteo de una consulta? me refiero a hibernate-wise – kommradHomer
¿De qué sirve usar un ORM si terminamos codificando SQL de todos modos? – thermz
Esto es lo que official hibernate docs tell nosotros en esto:
Se puede contar el número de resultados de la consulta sin devolverlos:
((Integer) session.createQuery("select count(*) from ....").iterate().next()).intValue()
Sin embargo, no siempre devuelve la instancia Integer
, por lo que es mejor usar java.lang.Number
para mayor seguridad.
+1 por una respuesta que proporcione el método recomendado por el equipo de Hibernate. – Tom
Esto funcionó para mí. – abbas
Para mí esto dio "java.lang.ClassCastException: java.lang.Long no se puede convertir a java.lang.Integer", pero a cambio funciona en tiempo largo ... – rogerdpack
Long count = (Long) session.createQuery("select count(*) from Book") .uniqueResult();
pellizcada su respuesta para agregar la nota de rendimiento – rajadilipkolli
debe ser ''' Cuenta larga = (Largo) session.createQuery ("select count (1) from Book"). uniqueResult(); '' 'mejorará el rendimiento – rajadilipkolli
Si está usando Hibernate 5+, a continuación, consulta será modificado como
Long count = session.createQuery("select count(1) from Book")
.getSingleResult();
o si necesita TypedQuery
Long count = session.createQuery("select count(1) from Book",Long.class)
.getSingleResult();
- 1. filas contamos con una condición específica en la consulta agregada
- 2. ¿Cómo contar las filas en Hibernate Query Language?
- 3. Cómo desmarcar todas las filas usando UITableViewCellAccessoryCheckmark
- 4. Usando SQL, ¿cómo actualizo las filas, usando sus propios valores?
- 5. Java/Hibernate usando interfaces sobre las entidades
- 6. Hibernate Criterios y recuento de filas restricción
- 7. de consultas SQL, contamos con 0 recuento
- 8. ¿Cómo ocultar/mostrar las filas de la tabla usando jQuery?
- 9. ¿Cómo se selecciona una columna usando Hibernate?
- 10. Escribir menos DAO con Spring Hibernate usando las anotaciones
- 11. jqGrid - Navegar filas usando las teclas de flecha arriba/abajo?
- 12. Hibernate combinación interna usando hql
- 13. Hibernate los criterios del API: conseguir n filas aleatorias
- 14. Insertar varias filas usando seleccionar
- 15. Insertar varias filas usando JdbcTemplate
- 16. cómo borrar todas las filas de UITableView
- 17. ¿Cómo mostrar todas las filas en jqGrid?
- 18. Spring JdbcTemplate: ¿cómo limitar las filas seleccionadas?
- 19. ¿Cómo enumerar las filas devueltas en SQL?
- 20. ¿cómo puedo actualizar las filas al azar?
- 21. ¿cómo elimino las filas en Yii?
- 22. DataTable, cómo eliminar condicionalmente las filas
- 23. ¿Cómo suprimir por completo las filas duplicadas
- 24. Cómo deshabilitar las filas de gridview border
- 25. Búsqueda insensible a mayúsculas/minúsculas usando Hibernate
- 26. ¿Cómo puedo visualizar las filas dentro de las filas en la tabla?
- 27. Excel: recuperar las filas seleccionadas
- 28. ¿Cómo borrar todo el caché de Hibernate (ehcache) usando Spring?
- 29. devolver todas las filas duplicadas
- 30. Recuperando todas las filas de una tabla sin HQL?
Devuelve un largo. –
Como @Salandur sugiere, "Es al menos un número", y el tipo de número tiene "intValue()", "longValue() "métodos, para que podamos obtener fácilmente el tipo primitivo deseado que queremos: ((Number) criteria.uniqueResult()). intValue() –
Devuelve un tipo de 'Objeto'. – Lion