java - tarjeta - consulta nativa de hibernación, cuenta
tarjeta mastercard banco nacion (2)
¿Has intentado llamar a query.getSingleResult ()?
Posible duplicado:
¿Cómo contamos las filas usando Hibernate?
Quiero contar el número de registros por criterio en la base de datos.
Intento utilizar la próxima consulta
String queryString = "SELECT Count(*) FROM my_table";
Query query = entityManager.createNativeQuery(queryString);
pero no hay un método para ejecutar esta Query query
y obtener el resultado.
Lo sé, puedo contar registros usando
String queryString = "SELECT * FROM my_table";
Query query = entityManager.createNativeQuery(queryString);
query.getResultList().size();
así que pregunta, ¿es la consulta con Count(*)
más rendimiento, y si es así, entonces, ¿cómo puedo ejecutar la consulta con Count(*)
?
Puede ejecutar su primera consulta llamando a Query.getSingleResult()
, por ej.
String queryString = "SELECT Count(*) FROM my_table";
Query query = entityManager.createNativeQuery(queryString);
System.out.println(query.getSingleResult());
Si desea asignar el recuento a una variable, debe convertirlo en el tipo correcto (puede depender de DB pero lo más probable es que sea Largo). La segunda consulta es muy ineficiente porque Hibernate necesita recuperar toda la tabla de DB, analizarla y luego contar todas las filas.