我正在创建一个包含多个表的复杂查询,并且需要列出结果。通常,我使用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 个表,我不想创建所有类只是为了访问这些值。