usar query namedquery how hacer ejemplo createnamedquery consultas como java jpa named-query

java - namedquery - usar named query jpa



Cuenta de JPA NamedQuery (3)

cómo obtener el conteo con una consulta detallada, sin obtener toda la lista (aumentaría el rendimiento, creo). Esta es la consulta nombrada que no funciona:

@NamedQuery(name = "Charakteristika.findAllCount", query = "SELECT COUNT(c) FROM Charakteristika c")

Ejecutando esto:

System.out.println("a"); System.out.println(em.createNamedQuery("Charakteristika.findAllCount", Integer.class).getSingleResult().intValue()); System.out.println("b");

Salida:

a

Aunque esta consulta funciona:

@NamedQuery(name = "Charakteristika.findAll", query = "SELECT c FROM Charakteristika c")

Ejecutando esto:

System.out.println("a"); System.out.println(em.createNamedQuery("Charakteristika.findAll", Charakteristika.class).getResultList().size()); System.out.println("b");

Salida:

a 11111 b


Cambie su código le gusta esto;

int count = ((Number)em.createNamedQuery("Charakteristika.findAllCount").getSingleResult()).intValue(); System.out.println(count);


También puedes probarlo: usa la interfaz TypeQuery con Long value. En el siguiente ejemplo, la consulta "PosicionHistorialDia.findNumberSpeeding" es un recuento de jpa.

@Override public Long findCount(String eventCode) { TypedQuery<Long> query = em.createNamedQuery( "PosicionHistorialDia.findNumberSpeeding", Long.class); query.setParameter("event", eventCode); return query.getSingleResult(); }


Tratar:

System.out.println("a"); System.out.println(em.createNamedQuery("Charakteristika.findAllCount").getSingleResult()); System.out.println("b");

Y mira si la salida te sugiere algo.

Fallando en eso,

  • prueba getResultList lugar de getSingleResult ; de lo contrario, lo mismo.

  • intente createQuery("SELECT COUNT(c) FROM Charakteristika c").getSingleResult & getResultList

  • Explore las diferencias en la declaración de consultas; como señala JB, las consultas son las mismas. Por lo tanto, pruebe ambos nombres con las diferentes formas anteriores.

  • Examina cómo estás construyendo; ¿Es esta parte de una aplicación implementada? ¿ser único?

Algo tiene que dar en alguna parte.