2

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);
}

これを行うための定義済みの方法はありますか?

ありがとうございました!

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 に答える