JPA 1.0 的 TypedQuery 等效项
Posted
技术标签:
【中文标题】JPA 1.0 的 TypedQuery 等效项【英文标题】:TypedQuery equivalent for JPA 1.0 【发布时间】:2011-05-25 04:49:46 【问题描述】:我对 JPA 很陌生,我正在使用 Apress JPA2 教科书来学习它。我试图从书中做第一个例子。下面这行代码给了我一个错误:
TypedQuery query = em.createQuery("SELECT e FROM Employee e", Employee.class);
说 TypedQuery 无法解析为类型。经过一段时间的努力,我意识到我使用的是 JPA 版本 1,它不包含 TypedQuery,而只是 Query 接口。
我的问题是 JPA 版本 1 中是否有等效声明。请帮助。提前致谢。
【问题讨论】:
【参考方案1】:由于 TypedQuery 是从 JPA-2.0 引入的,所以必须使用 Query 接口。
1) 为查询映射结果类型的原生查询(失去可移植性)。
Query selectQuery = entityManager.createNativeQuery("SELECT
e FROM Employee e", Employee.class);
2) 创建查询,然后将其显式转换为结果类型(更可取)。
Query selectQuery = entityManager.createQuery("SELECT e FROM Employee e")
List<Employee> employees = (List<Employee>)selectQuery.getResultList(); //Multiple Result
Employee employee = (Employee)selectQuery.getSingleResult(); //Single Result
【讨论】:
以上是关于JPA 1.0 的 TypedQuery 等效项的主要内容,如果未能解决你的问题,请参考以下文章
java 使用jpa参数+ TypedQuery进行示例搜索查询并继承常见的crud操作
TypedQuery<String> 上的 NullPointerException -- JavaEE Spring JPA2.1