JPA createNamedQuery 语法

Posted

技术标签:

【中文标题】JPA createNamedQuery 语法【英文标题】:JPA createNamedQuery syntax 【发布时间】:2010-08-01 02:40:32 【问题描述】:

在 Pro JPA 2 (Apress) 书中,我看到过类似的例子,

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

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

谢谢。

【问题讨论】:

【参考方案1】:

Java EE 5 使用 JPA 1,Java EE 6 使用 JPA 2。这是您正在寻找的方法:

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

创建TypedQuery 的实例以执行Java Persistence 查询语言命名查询。查询的选择列表必须包含 只有一个项目,它必须可分配给指定的类型 resultClass 参数。

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

返回:新的查询实例

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

:Java Persistence 2.0

【讨论】:

谢谢.. 我需要等待 6 分钟才能接受答案,所以说:-) 无效的网址你能提供另一个或在这里总结吗 @shareef,我已经更新了答案,但以后您可以自己编辑和更新答案,修复损坏的链接等。

以上是关于JPA createNamedQuery 语法的主要内容,如果未能解决你的问题,请参考以下文章

用于读取的 JPA 锁定实体

SpringJPA语法大全 特别是JPA的不等于

jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本

spring jpa 语法

使用 JPA 解析琐碎查询的语法错误

spring-data-jpa @Query 支持正则表达式语法吗?