我正在创建一个具有多个表的复杂查询,需要列出结果。通常,我正在使用EntityManager并将结果映射到JPA-Representation:
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表,我不想创建所有只是为了访问这些值。