因为是hibernate联表查询,我需要从2个对象中分别抽取部分属性写到另一个新对象中部分代码
Query query = this.getSession().createQuery("from LoginBean l inner join fetch l.departmentBean");
query.setFirstResult(i_begin);
query.setMaxResults(i_row);
list = query.list();
for (int i = 0; i < list.size(); i++) {
Object[] objcs = (Object[]) list.get(i);//出错位置,似乎是转型问题
LoginDepartBean login_depart = new LoginDepartBean();
login_depart.setUsername(objcs[4].toString());
// System.out.println(objcs[0].toString());
login_depart.setName(objcs[2].toString());
login_depart.setName_department(objcs[7].toString());
// System.out.println(objcs[2].toString());
logindepartlist.add(login_depart);
}错误提示:org.apache.jasper.JasperException: com.spring.model.bean.LoginBean cannot be cast to [Ljava.lang.Object;
从错误提示看,似乎是转型错误,我想list.get(i)应该包含了2个对象实体吧分别是LoginBean 和departmentBean
似乎把这2个实体转型成object出错,请问,这部分代码应该怎么写

解决方案 »

  1.   

    需要转型?你的list就是个LoginBean ,可以直接Iterator ite = query.list().iterator();
    while (ite.hasNext()) {
    LoginBean loginBean = (LoginBean)ite.next()loginBean.getXX()    //pojo
      

  2.   

    我想是LoginBean吧,但是,我还要从departmentBean中取一个属性呀
    那我怎么导航哦?能不能也把这部分代码贴给我哦,谢谢
      

  3.   

    不看书的孩...hibernate的精髓对象关系映射
      

  4.   

    departmentBean是LoginBean关联过去的。那么
    LoginBean的pojo中有DepartmentBean的loginBean.getDepartmentBean().getXXX    //就有了
      

  5.   

    至于使用Iterator iterator = groupList.iterator();
    while(iterator.hasNext()){
    Object[] p = (Object[])iterator.next();这样的。这个groupList的就是来自于一个
    createQuery("from LoginBean group by XXX"); 这样不确定的对象list
      

  6.   

    谢谢了,我最近才看的hibernate的,才1个礼拜,很多地方不是很理解,我马上结贴