Jpa JPQL聚合返回
假设我有以下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
按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 ...