List list=query.list();
String name=(String)list.get(0);
Integer age=(Integer)list.get(1);就用Integer他的容错率蛮好的.不用int

解决方案 »

  1.   

    楼上,你这种方法似乎不可以,报错:
    Hibernate: select distinct name0_.NAME as x0_0_, age1_.age as x1_0_ from t_name
    name0_, t_age age1_ where (name0_.id=age1_.id )
    java.lang.ClassCastException: [Ljava.lang.Object;
            at com.lizhj.BusinessService.findAllUser()V(BusinessService.java:108)
            at com.lizhj.BusinessService.test()V(BusinessService.java:116)
            at com.lizhj.DBServlet.doPost(Ljavax.servlet.http.HttpServletRequest;Lj
    vax.servlet.http.HttpServletResponse;)V(DBServlet.java:30)
      

  2.   

    List   list=query.list();
    for(int i=0;i<list.size();i++){ 
    Object obj[] =(Object)list.get(i); 
    //把你要取的字段按顺序在obj数组中取出就可以了
    }
      

  3.   

    list result = query.list();
    for(int i = 0; i < result.size(); i++) {
        Object[] row =( Object[])result.get(i);
       String name = (String)row[0];
       Integer age = (Integer) row[1];
      .....
    }
      

  4.   

    用hql语句进行查询那样就可以取出来了
      

  5.   

    返回值是数组列表具体类型要看你select后面的东西类型了。
    object[0]是name
    object[1]是age
      

  6.   

    返回的List是一个包含Object[]的列表.里面的没个个对象都是Object[]
      

  7.   

    你POJO类里对name,age这两个属性是怎么定义的? 如果你的age属性是String或其它的什么类,Integer age = (Integer) list.get(i);这样当然要报类型转换错误。再说你的数据库设计,name,age应该是一个实体下的属性,为什么把它们放在不同的实体进行处理?而且a.id=b.id你这个关系是怎么建立的?一般情况下,我们对一对多,或多对一的情况都会按对象的形式进行映射。在处理时是类似person.department.dname来处理的。