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 de N 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.
InformationsquelleAutor Minutis | 2012-08-10