2010-08-01 49 views
0

在Pro JPA 2(Apress出版)一书,我看到像的例子,JPA createNamedQuery语法

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

但是,该api,希望施加到JPA 2.0,示出了语法

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

只有一个参数。这本书广泛使用这种类型,所以我错过了什么?

谢谢。

回答

2

Java EE 5中使用JPA 1和Java EE 6使用JPA 2.这里就是你要寻找的方法:

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

用于执行Java持久性 创建的TypedQuery实例查询语言命名查询。查询的选择列表必须包含 只有一个项目,该项目必须可由 参数resultClass参数指定的类型指定。

参数name - 查询的元数据 resultClass定义的名称 - 查询结果

返回类型:新的查询实例

抛出IllegalArgumentException - 如果查询没有用给定名称定义,或者查询字符串被发现无效或者查询结果被发现不能指定给指定类型

由于:Java持久性2.0

+0

谢谢。我需要等待6分钟接受答案,所以说:-) – bsr 2010-08-01 02:49:35

+0

不客气。 :) – Behrang 2010-08-01 02:53:35

+0

无效的网址,你可以在这里提供另一个或总结 – shareef 2014-07-08 11:28:15