JPA compter NamedQuery
comment obtenir le comte avec un namedquery, sans trop entrer dans la liste (il serait d'augmenter les performances, je pense). C'est le nom de la requête qui ne fonctionne pas:
@NamedQuery(name = "Charakteristika.findAllCount", query = "SELECT COUNT(c) FROM Charakteristika c")
De l'exécution de cette:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAllCount", Integer.class).getSingleResult().intValue());
System.out.println("b");
De sortie:
a
Bien que cette requête fonctionne:
@NamedQuery(name = "Charakteristika.findAll", query = "SELECT c FROM Charakteristika c")
De l'exécution de cette:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAll", Charakteristika.class).getResultList().size());
System.out.println("b");
De sortie:
a
11111
b
- Les requêtes sont les mêmes, l'exécution est différente.
- Je suis très désolé, le problème est toujours le même, juste mal orthographié deuxième requête.
- La deuxième exécution spécifie le type de résultat à
Charakteristika.class
; je suppose que c'est de jeter les choses, de revenir un compte pour chacun deN
lignes. - En général semble raisonnable, donc je pense que plus d'info peut être utile - quel est votre environnement d'exécution? JPA moteur, version, etc?
- Quel problème? Dites-nous ce qui se passe.
Vous devez vous connecter pour publier un commentaire.
Modifier votre code aime cela;
Aussi, vous pouvez essayer ça: utiliser TypeQuery interface avec la valeur de type Long. Dans l'exemple suivant, "PosicionHistorialDia.findNumberSpeeding" requête est une jpa comte.
Essayer:
Et voir si elle est sortie suggère quelque chose pour vous.
À défaut,
essayer
getResultList
au lieu degetSingleResult
; sinon la même chose.essayer
createQuery("SELECT COUNT(c) FROM Charakteristika c").getSingleResult
&getResultList
Explorer les différences dans la déclaration de requêtes; JB, les interrogations sont les mêmes. Donc, essayez les deux noms avec les différentes formes ci-dessus.
Examiner la façon dont vous êtes en train de construire, est-ce une partie d'une application déployée? stand-alone?
Quelque chose doit bien donner quelque part.