EntityManager.createNativeQuery不返回类型化的结果

时间:2019-01-09 11:53:41

标签: java jpa entitymanager

我需要通过 entityManager 选择本地查询。我找到了方法:

public Query createNativeQuery(String sqlString, Class resultClass);

并尝试使用它:

Query query = em.createNativeQuery(readyQuery, SmevMessage.class);
return query.getResultList();

但是IDE仍然作为警告突出显示:

enter image description here

为什么此方法存在?我应该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

您会收到什么警告?您的IDE是否仅警告您有关返回的List的未经检查的转换?

您可以忽略那个。不幸的是,createNativeQuery方法返回了无类型的Query。您无法解决该警告。如果确实困扰您,您可以使用@SuppressWarnings("unchecked")来压制它。

请注意,您需要提供一个实体类作为resultClass参数的值,如我所解释的here。因此,在您的情况下,SmevMessage必须是一个实体。如果要将查询结果映射到DTO,则需要define an @SqlResultSetMapping