Search code examples
javajpaormnamed-queryjpa-2.0

JPA createNamedQuery syntax


In Pro JPA 2 (Apress) book, I have seen examples like,

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

But, the api , hopefully applied to JPA 2.0, shows the syntax as

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

with a single parameter. The book uses the type extensively, so what am I missing?

thanks.


Solution

  • Java EE 5 uses JPA 1 and Java EE 6 uses JPA 2. Here's the method you're looking for:

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

    Create an instance of TypedQuery for executing a Java Persistence query language named query. The select list of the query must contain only a single item, which must be assignable to the type specified by the resultClass argument.

    Parameters: name - the name of a query defined in metadata resultClass - the type of the query result

    Returns: the new query instance

    Throws: IllegalArgumentException - if a query has not been defined with the given name or if the query string is found to be invalid or if the query result is found to not be assignable to the specified type

    Since: Java Persistence 2.0