java - 将 JPA query.getResultList() 转换为我的对象

标签 java jpa jpql

我正在 JPA 中对我的数据库执行查询。查询“查询”4 个表,结果聚合来自不同表的列。

我的查询是这样的:

Query query = em.createQuery("SELECT o.A, o.B, o.C, e.D, c.E FROM Table1 o, 
Table2 i, Table3 e, Table4 c WHERE o.X = i.X AND i.Y = e.Y AND i.Z = c.Z");

如何获取查询结果并提取不同的字段?

我创建了一个代表结果列表中每一项的类 (MyObject),我想将 query.getResultList() 转换成一个 List

我该怎么做?

最佳答案

这种查询返回 List<Object[]> .所以你只需要一个循环来将每个数组转换成你的类的一个实例:

List<Object[]> rows = query.getResultList();
List<MyObject> result = new ArrayList<>(rows.size());
for (Object[] row : rows) {
    result.add(new MyObject((String) row[0],
                            (Long) row[1],
                            ...));
}

关于java - 将 JPA query.getResultList() 转换为我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500114/

相关文章:

java - 基于子字符串在 Java 中对字符串进行排序

java - 如何创建一个包含比较元素以获得最高元素的数组的方法?

java - JPA新手无法与数据库交互

java - JPQL 多对多选择

java - JPQl 查询有错误

java - 泰勒级数 - 计算 sin(x) 直至 6 位精度

java - 如何强制Gradle重新编译所有子项目源?

JPA 和选择性 ManyToOne 关系

java - 两个依赖链 OSGI

java - JPA/hibernate : How to use INSERT JPQL?