2

我正在使用休眠 + JSF + Spring3

在查询中,我需要返回许多对象类型作为结果。

public ArrayList<ArrayList<Object>> getReportHoursPerUser(){
   return (ArrayList<ArrayList<Object>>)getHibernateTemplate().
          find(" SELECT u , SUM(r.hours) " +
               " FROM Report r, User u " +
               " WHERE r.responsible.idUser = u.idUser ");
}

但是将结果存储在对象数组的数组中并不是一个好主意。此外,我得到了这个异常:

Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.ArrayList

当我在我的托管 Bean 中执行此操作时:

reports = reportService.getReportHoursPerUser();
for (int i = 0 ; i <reports.size() ; i++ ){
      User u = (User) reports.get(i).get(0);
}

是否有任何预定义的方法可以做到这一点?

谢谢!

4

1 回答 1

1

查询的常用 JPA 返回类型

find(" SELECT u , SUM(r.hours) FROM Report r, User u " +
           " WHERE r.responsible.idUser = u.idUser ")

ArrayList<Object[]>Object[0]是用户,并且Object[1]必须是几个小时的相关数据类型。

于 2013-07-09T11:53:57.880 回答