Я запускаю собственный запрос JPA 2.0 следующим образом:
Query query = em.createNativeQuery("SELECT NAME, SURNAME, AGE FROM PERSON");
List list = query.getResultList();
сейчас list
содержит все строки, возвращаемые запросом. Я могу перебрать их, но каждая запись - это Object[]
, где:
- по индексу 0 я нахожу ИМЯ
- по индексу 1 я нахожу фамилию
- в индексе 3 я нахожу ВОЗРАСТ
Кто-нибудь нашел способ сделать что-то вроде этого:
Map<String, Object> row = list.get(index);
String name = row.get("NAME");
String surname = row.get("SURNAME");
Integer age = row.get("AGE");
Мне это нужно, поскольку выполняемый мной собственный запрос является динамическим, и я не знаю порядок поля в предложении SELECT, поэтому я не знаю id, на который будет похож запрос:
SELECT SURNAME, NAME, AGE FROM PERSON
или
SELECT AGE, NAME, SURNAME FROM PERSON
или даже
SELECT AGE, SURNAME, NAME FROM PERSON