我正在應用Group BY和Order BY子句。查詢中獲取成功的DB執行,它帶來的結果也不過它Object--在我的Spring MVC項目中使用Hibernate使用Criteria API將對象轉換爲類對象
這裏的數組是標準API
Criteria criteria = session.createCriteria(DashboardSubindicatorSubmission.class, "DashboardSubindicatorSubmission")
.setProjection(Projections.projectionList()
.add(Projections.sum("InputValue").as("InputValue"))
.add(Projections.groupProperty("fkAccademicYearId"))
.add(Projections.groupProperty("fkAssessmentPlanID"))
.add(Projections.groupProperty("fkSubindicatorID"))
.add(Projections.groupProperty("InputTitle")))
.addOrder(Order.asc("fkAccademicYearId"))
.addOrder(Order.asc("fkAssessmentPlanID"))
.addOrder(Order.asc("InputTitle"));
List<DashboardSubindicatorSubmission> dashboardSubindicatorSubmissionList = (List<DashboardSubindicatorSubmission>)criteria.list();
session.flush();
transaction.commit();
return dashboardSubindicatorSubmissionList;
我鑄造criteria.list()
到List<DashboardSubindicatorSubmission>
但代碼時,我嘗試做dashboardSubindicatorSubmissionList.get(i)
上控制器它給了我例外java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to mkcl.accreditation.model.DashboardSubindicatorSubmission
。
我才知道,雖然我爲它鑄造於List<DashboardSubindicatorSubmission>
還是其object[]
這就是一個列表,爲什麼我不能做dashboardSubindicatorSubmissionList.get(i)
,因爲它返回我的DashboardSubindicatorSubmission
對象。 (糾正我,如果我錯了)
那麼我怎麼能將我的結果轉換成DashboardSubindicatorSubmission
類的列表? 在這種情況下,setResultTransformer()能幫助我嗎?