entityManager.createNativeQuery не возвращает типизированный результат - PullRequest
0 голосов
/ 09 января 2019

Мне нужно выбрать собственный запрос с 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 голосов
/ 09 января 2019

Какое предупреждение вы получаете? Ваша IDE только предупреждает вас о непроверенном преобразовании возвращенных List?

Вы можете игнорировать это. К сожалению, метод createNativeQuery возвращает нетипизированный Query. Вы не можете исправить это предупреждение. Если это действительно беспокоит вас, вы можете подавить это с помощью @SuppressWarnings("unchecked").

И, пожалуйста, имейте в виду, что вам нужно предоставить класс сущности в качестве значения параметра resultClass, как я объяснил здесь . Итак, в вашем случае SmevMessage должен быть сущностью. Если вы хотите отобразить результат запроса в DTO, вам нужно определить @SqlResultSetMapping.

...