我正在使用Hibernate + 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);
}
是否有任何预定义的方法来执行此操作?
谢谢!
答案 0 :(得分: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]
必须是数小时的相关数据类型。