我对JPA很新,我正在使用Apress JPA2教科书来学习它。我试图从书中做第一个例子。以下代码行给出了一个错误:
TypedQuery query = em.createQuery(“SELECT e FROM Employee e”,Employee.class);
说TypedQuery无法解析为某种类型。经过一段时间的努力,我意识到我使用的是JPA版本1,它不包含TypedQuery,只是查询界面。
我的问题是JPA版本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