我需要使用EntityManager选择本机查询。我找到方法:

public Query createNativeQuery(String sqlString, Class resultClass);


并尝试使用它:

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


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

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

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

最佳答案

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

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

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

10-04 10:15