2011-05-25 34 views
1

我对JPA很陌生,我使用Apress JPA2教科书来学习它。我正在尝试做这本书的第一个例子。下面这行代码给我一个错误:TypedQuery等同于JPA 1.0

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

表示TypedQuery无法解析为类型。挣扎了一段时间后,我意识到我正在使用JPA版本1,它不包含TypedQuery,而只包含Query接口。

我的问题是在JPA版本1中是否有等价的语句。请帮助。提前致谢。

回答

2

由于TypedQuery是从JPA-2.0引入的,必须去查询接口。

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 
+0

感谢一堆它为第二选项工作。 – vishwa 2011-05-27 04:11:07