我运行一个JPA 2.0原生查询是这样的:JPA 2.0原生查询结果作为地图
Query query = em.createNativeQuery("SELECT NAME, SURNAME, AGE FROM PERSON");
List list = query.getResultList();
现在list
具有由查询返回的所有行。我可以遍历他们,但每个条目是一个Object[]
其中:
- 在索引0我觉得NAME
- 在索引1,我觉得SURNAME
- 在指数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
条件查询? http://www.ibm.com/developerworks/java/library/j-typesafejpa/ – NimChimpsky
我不这么认为,因为我仍然需要Person.class。正如我所说的,SQL qeury是动态的,我实际上不知道它会是什么样子。 – kovica