List list=new ArrayList();
String queryStr="select office.* from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr);
System.out.println(q.list().size()+" dixoa");
Iterator it=q.list().iterator();
while(it.hasNext())
{
Office obj=(Office)it.next();
list.add(obj);
}
return list;
报的是
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
错误 啊
大侠帮小弟一下哦,困扰小弟很久了啊
String queryStr="select office.* from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr);
System.out.println(q.list().size()+" dixoa");
Iterator it=q.list().iterator();
while(it.hasNext())
{
Office obj=(Office)it.next();
list.add(obj);
}
return list;
报的是
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
错误 啊
大侠帮小弟一下哦,困扰小弟很久了啊
另外,确认下it.next()返回的是不是一个数组?
报错已经说的很清楚了,强制转型的错误
Office obj=(Office)it.next(); 这行有问题
至少如何处理得到的结果,网上有很多实例,自己去查查吧
建议查看此行,取出的类型与Office不相符
就是说类型有问题
System.out.println( it.next() );看看打印出来的结果是什么,然后反思一下,看是哪里出现了问题
你可以用map.get("字段名")来获得
然后再封装到Office
List<office> list = new ArrayList<office>();
String queryStr="select {office.*} as ofi from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr);
System.out.println(q.list().size()+" dixoa"); Iterator it=q.addEntity("ofi", Office.class).list().iterator(); while(it.hasNext())
{ list.add(it.next());
} return list;
List list=new ArrayList();
String queryStr="select {office.*} from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr);
System.out.println(q.list().size()+" dixoa"); Iterator it=q.addEntity("office", Office.class).list().iterator(); while(it.hasNext())
{ list.add(it.next());
} return list;
我自己找到原因了
将
String queryStr="select office.* from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr);
改为
String queryStr="select office.* from office join(select * from office order by revert desc) t on(office.id=t.id) limit 0,"+degree;
Query q=session.createSQLQuery(queryStr).addEntity(Office.class);
即在查询时跟上映射类就OK了