我需要使用EntityManager选择本机查询。我找到方法:
public Query createNativeQuery(String sqlString, Class resultClass);
并尝试使用它:
Query query = em.createNativeQuery(readyQuery, SmevMessage.class);
return query.getResultList();
但是IDE仍然作为警告突出显示:
为什么会存在这种方法?我应该怎么做才能解决它?
最佳答案
您会收到什么警告?您的IDE是否仅警告您有关返回的List
的未经检查的转换?
您可以忽略那个。不幸的是,createNativeQuery
方法返回一个无类型的Query
。您无法解决该警告。如果确实困扰您,可以使用@SuppressWarnings("unchecked")
禁止显示。
并且请注意,您需要提供一个实体类作为resultClass
参数的值,正如我对here的解释。因此,在您的情况下,SmevMessage
必须是一个实体。如果要将查询结果映射到DTO,则需要define an @SqlResultSetMapping
。