Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa JPQL聚合返回_Jpa_Eclipselink_Jpql - Fatal编程技术网

Jpa JPQL聚合返回

Jpa JPQL聚合返回,jpa,eclipselink,jpql,Jpa,Eclipselink,Jpql,假设我有以下JPQL查询 按e.column1、e.column2从实体e组中选择e.column1、e.column2、SUM(e.column3)、SUM(e.column4) 显然,我不会返回实体对象,而是返回更复杂的对象。如何在方法中返回此值 public List<???> query1() { Query q = entityManager.createQuery("..."); List<Something???> list = q.getR

假设我有以下JPQL查询

按e.column1、e.column2从实体e组中选择e.column1、e.column2、SUM(e.column3)、SUM(e.column4)

显然,我不会返回实体对象,而是返回更复杂的对象。如何在方法中返回此值

public List<???> query1() {

   Query q = entityManager.createQuery("...");

   List<Something???> list = q.getResultList();

   return list;
}
公共列表查询1(){
Query q=entityManager.createQuery(“…”);
List List=q.getResultList();
退货清单;
}

这样的查询返回一个
列表,其中每个元素都是一个对象数组。数组的第一个元素的类型为Entity.column1,第二个元素的类型为Entity.column2,最后两个元素的类型为Long(至少使用Hibernate)(使用EclipseLink检查)

您可以在
列表
中转换
列表
,只需在对象列表上循环并将每个对象转换为
Foo
。您也可以在查询中直接使用构造函数表示法(前提是Foo有这样的构造函数),但我个人不喜欢它,因为它不可重构:

select new com.baz.bar.Foo(e.column1, e.column2, SUM(e.column3), SUM(e.column4)) from ...