一尘不染

Java持久性:是否将Query.getResultList()的结果转换为某些内容?

hibernate

大家好,我是持久/hibernate的新手,需要您的帮助。

这是情况。我有一个包含一些东西的表。我们称它们为“人”。我想从该表中的数据库中获取所有条目。

我有一个Person类,它是一个简单的POJO,具有表中每个列的属性(名称,年龄,..)

这是我所拥有的:

Query lQuery = myEntityManager.createQuery("from Person")
List<Person> personList = lQuery.getResultList();

但是,我收到一条警告,说这是从List到的未经检查的转换List<Person>

我认为只需将代码更改为

Query lQuery = myEntityManager.createQuery("from Person")
List<Person> personList = (List<Person>)lQuery.getResultList();

会工作..但是没有。

有没有办法做到这一点 ?持久性是否允许我设置查询的返回类型?(也许通过泛型?)


阅读 662

收藏
2020-06-20

共1个答案

一尘不染

作为JPA的新手,他将其作为确定的答案,但随后我通过以下问题找到了一个更好的答案:为什么在JPA中,EntityManager查询会抛出NoResultException而find却没有?

就像使用TypedQuery代替Query一样简单,例如:

TypedQuery<Person> lQuery = myEntityManager.createQuery("from Person", Person.class);
List<Person> personList = lQuery.getResultList();
2020-06-20