Why does this cast fail? Since results for me is a List of Average. But apparently some magic is needed since java thinks it's an Object.
When working further with this it seems like the q.getResultList() call will give me a raw list of object which seems strange to me, since it's a TypedQuery.
TypedQuery<Average> q = em.createQuery("select p.id, p.lastName, p.firstName, c.name, s.serieDate, st.serie_type, st.serie_type_info, count(s.player.id), sum(s.result), avg(s.result) from Serie s, Player p, Club c, SerieType st " +
" where p.id = s.player.id" +
" and c.id = s.club.id " +
" and st.id = s.serieType.id " +
" and c.name like '%" + clubName + "%'" +
" and st.serie_type like '%" + serieType.getSerie_type() + "%'" +
" and st.serie_type_info like '%" + serieType.getSerie_type_info() + "%'" +
" and s.serieDate > :startDate" +
" and s.serieDate < :endDate" +
" group by p.id, p.lastName, p.firstName, c.name, s.serieDate, st.serie_type, st.serie_type_info", Average.class);
q.setParameter("startDate", calendarBean.getDate1());
q.setParameter("endDate", calendarBean.getDate2());
Here is the call
List<Average> resultList = q.getResultList();
List<Average> withAverages = CalculateAveragesClub(resultList);
private List CalculateAveragesClub(List<Average> results) {
for (Average average : results) { //error in this cast
}
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/BowlingFacelets] threw exception [[Ljava.lang.Object; cannot be cast to com.jk.hcp.Average] with root cause
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.jk.hcp.Average
at com.jk.hcp.ServiceSeries.CalculateAveragesClub(ServiceSeries.java:508)