问题描述
|
我对JPA很陌生,并且正在使用Apress JPA2教科书来学习它。我试图做这本书的第一个例子。下面的代码行给我一个错误:
TypedQuery查询= em.createQuery(\“ SELECT e FROM Employee e \”,Employee.class);
表示无法将TypedQuery解析为一种类型。经过一段时间的努力,我意识到我正在使用JPA版本1,该版本不包含TypedQuery而是仅包含Query接口。
我的问题是,JPA版本1中是否存在等效的声明。请帮助。提前致谢。
解决方法
由于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