TypedQuery等效于JPA 1.0

时间:2011-05-25 04:49:46

标签: jpa-2.0

我对JPA很新,我正在使用Apress JPA2教科书来学习它。我试图从书中做第一个例子。以下代码行给出了一个错误:

TypedQuery query = em.createQuery(“SELECT e FROM Employee e”,Employee.class);

说TypedQuery无法解析为某种类型。经过一段时间的努力,我意识到我使用的是JPA版本1,它不包含TypedQuery,只是查询界面。

我的问题是JPA版本1中是否有相同的声明。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:2)

由于从JPA-2.0引入了TypedQuery,所以必须使用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