2010-08-01 21 views
0

Dans le livre Pro JPA 2 (Apress), je l'ai vu des exemples comme,JPA createNamedQuery syntaxe

EntityManager em; 
Long count = em.createNamedQuery(countQueryName, Long.class).getSingleResult(); 

Mais, le api, nous l'espérons appliquée à JPA 2.0, montre la syntaxe comme

createNamedQuery(String name) 
Parameters: 
name - the name of a query defined in metadata 

avec un seul paramètre. Le livre utilise beaucoup le type, alors qu'est-ce qui me manque?

merci.

Répondre

2

Java EE 5 utilise JPA 1 et Java EE 6 utilise JPA 2. Voici la méthode que vous cherchez:

createNamedQuery(java.lang.String name, java.lang.Class resultClass):

Créer une instance de TypedQuery pour exécuter une Java Persistence langue de requête nommée requête. La liste de sélection de la requête doit contenir seulement un seul élément, qui doit être assignable au type spécifié par l'argument resultClass.

Paramètres: name - le nom d'une requête définie dans les métadonnées resultClass - le type de résultat de la requête

Retours: la nouvelle instance de requête

Lancers: IllegalArgumentException - si une requête n'a pas été définie avec le nom donné ou si la chaîne de requête est jugée non valide ou si le résultat de la requête n'est pas assignable au type spécifié

Depuis: Java Persistence 2.0

+0

merci .. je dois attendre 6 minutes pour accepter la réponse, le dit :-) – bsr

+0

Vous êtes les bienvenus. :) – Behrang

+0

url invalide pouvez-vous fournir un autre ou summerize ici – shareef