问题描述
感谢您的关注问题是关于hql的分组统计查询遍历 表名 book字段 bookid bookname bookkind bookmoney//(按照图书的分类统计图书的价钱总和)String hql="select sum(bookmoney),bookkind from Book as book group by bookkind";Query q=session.createQuery(hql);return q.list();请问高手 查询后的 list 应该怎样遍历取出 对应的每一个分类的名称和分类的图书价钱总合 请详细点 问题补充:list2是 List<Object> list2 这样的吗 一直提示java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.List
解决方案
list里存放的是Object数组形式,第一个元素是bookMoney,第二个是bookKind,按数组取就行
解决方案二:
忽然发现不对, 不是list,是数组List<Object[]> list = query.list();for(Object[] objectList : list){ String bookmoney = (Integer)objectList [0]; String kind = (String)objectList[1]; System.out.println(kind + " : " +bookmoney );}
解决方案三:
引用list2是 List<Object> list2 这样的吗 嗷 有些地方要强制类型转换,list2应该是 List<Object>类型没错,然后list2 .get(0),get(1)也要强制类型转换
解决方案四:
List<List<Object>> list = q.list(); for(list2 : list) { System.out.println(list2 .get(0)); System.out.println(list2 .get(1));}或者你可以用map的方式String hql="select new map(sum(bookmoney),bookkind) from Book as book group by bookkind"; 返回的是一个包含map的listList<Map<String,Object>> list = q.list(); for(Map map : list) { System.out.println(map.get("0")); System.out.println(map.get("1"));}