java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.Map的问题

代码如下:publicList<Map<String,Object>>queryStu()throwsException{return(List<Map<String,O... 代码如下:
public List<Map<String, Object>> queryStu() throws Exception {
return (List<Map<String, Object>>)this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
System.out.println("daoimpl..doinhibetrnate..");
String hql = "select count(distinct sid) from Student";
Query q = session.createQuery(hql);

Object o = q.uniqueResult();//总记录数
allPage = (Integer.valueOf(o.toString()) + pageSize - 1)/pageSize;//总页数
allog = Integer.valueOf(o.toString());

String hql2 = "select sid,sname,ssex,sage,sdept,sclass from Student";
Query q2 = session.createQuery(hql2);
q2.setFirstResult((currentPage - 1)*pageSize);//起始数据
q2.setMaxResults(pageSize);//每页的条数

List<Map<String, Object>> list = q2.list();//object类型,转为map报错
System.out.println("daompl.....+"+list);
for(Map<String, Object> map:list){//object强转map
System.out.println("list-------");
for(String s:map.keySet()){
System.out.println(s+":"+map.keySet());
}
}
return list;
}
});
}
在下面的for循环输出有错,怎么回事?
展开
 我来答
飞来横脚
推荐于2018-02-27 · TA获得超过195个赞
知道答主
回答量:49
采纳率:0%
帮助的人:52.6万
展开全部
字面意思,类型转化异常,无法将Object类型对象转化成Map类型对象,你通过hibernate获取的数据集合没有指定其返回类型,默认的就是Object类型,通过在取值之前指定他的返回类型为Map就行了,在你的List<Map<String, Object>> list = q2.list();上面加上一行

q2.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
帐号已注销
2013-11-20 · 超过13用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:30.9万
展开全部
List<Map<String, Object>> list = q2.list();// object类型,转为map报错这里应该写成:
List<Object>list =q2.list();
for(Object object:list)
{
Object[] obj =(Object[])object;

//然后进行输入obj数组里面的值即可

System.out.println(obj[0]);

System.out.println(obj[1]);
//....
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱我所爱丶Lyb
2013-11-20 · TA获得超过408个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:308万
展开全部
Hibernate 分页查询的方法list 返回的是List<实体类>吧 ,你什么返回List<Map>,看你hql应该是List<Student>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式