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.

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top