Я создаю сложный запрос с несколькими таблицами и должен перечислять результат. Обычно я использую EntityManager
и сопоставляю результат с JPA-представлением:
UserEntity user = em.find(UserEntity.class, "5");
Затем я могу получить доступ ко всем значениям, так как это определяет класс пользователя UserEntity
. Но как я могу получить доступ к значениям полей, возвращенным из собственного запроса с несколькими таблицами? Я получаю список объектов. До сих пор это прекрасно, но что такое "этот"? Массив? Карта? Коллекция?...
//simpleExample
Query query = em.createNativeQuery("SELECT u.name,s.something FROM user u, someTable s WHERE s.user_id = u.id");
List list = query.getResultList();
//do sth. with the list, for example access "something" for every result row.
Я думаю, ответ довольно прост, но большинство примеров там просто показывают использование при прямом нажатии на targetClass.
PS: В этом примере я мог бы, конечно, использовать сопоставления классов. Но в моем случае someTable
не управляется JPA, и поэтому у меня нет объекта и у меня нет его представления класса, и поскольку я присоединяюсь к 20 таблицам, я не хочу создавать все классы просто для доступа к значениям.