public List findAll(){
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
        Query q=session.createQuery(hql); 
return q.list();
} 试了许多方法,没有用

解决方案 »

  1.   

    结果是Object数组,直接obj[i]遍历就Ok啦....
      

  2.   

    返回的是List<Object>,遍历list,list中的对象是Object数组....
      

  3.   

    按数组下标来取:
    List list = q.list();
    for(Object o[] : list) {
        System.out.println("第一个" + o[0]);
        System.out.println("第二个" + o[1]);
        System.out.println("第三个" + o[2]);
    }
    或者用别名,然后绑定到dto中,dto中的字段名和别名要一直。
      

  4.   

    得到上面的思路,使用这个方法取出了值
    for(int i = 0; i <list.size();i++) {
     Object[] obj =(Object[])list.get(i);
     String id = String.valueOf(obj[0]);
     String brach = String.valueOf(obj[1]);
     String brachfather = String.valueOf(obj[2]);
    }
    我用的是ssh架构,该怎么样将这个值遍历传到页面呢?
      

  5.   

    Query q=session.createSQLQuery(hql);
     return q.addEntity(EntityClass.class).list();   
    EntityClass是个实体类,对应你要查询的字段,list的结果是个EntityClass对象集合,遍历强转为EntityClass就行了。
      

  6.   

    List<Object[]> list = q.list(); 
    页面
    <c:forEach items="${list}" var="obj">
    ${obj[0]}
    </forEach>
      

  7.   

    我本来实体brach  里面有id  brach  fatherid  三个字段  我想得出的结果 是  id  brach  brach    
      

  8.   

    EntityClass提供三个属性 id  brach  brach ,提供set get方法,提供映射文件就行了。
      

  9.   

    初学者,谷歌了一下EntityClass,没弄明白,可否写一个小实例,我主要卡在得出了结果集,但是它跟brach这个实体不一样了,无法输出到页面上去。可以看出页面上几条结果,但是不知道怎么对应值,显示的是空白
      

  10.   

    我dao层这么写public List findAll(){
    Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
    String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
            Query q=session.createQuery(hql); 
    return q.list();
    } action层
    public String brachList() throws Exception{
    brachs = brachservice.findAll();

    return SUCCESS;
    }
    jsp<s:iterator value="brachs">
    <tr>
    <td><input type="checkbox" id="check_id" name="check_id" value="<s:property value="id"/>"></td>
    <td><s:property value="id"/></td>
    <td><s:property value="brach"/></td>
    <td><s:property value="fatherid"/></td>

    </tr>
    </s:iterator>
      

  11.   

    你搜不应该搜EntityClass,而应该搜query.addEntity的用法
      

  12.   

    我就是检索的createSQLQuery addEntity()  不过有用的资料很少
    遍历强转为EntityClass  什么意思?
      

  13.   

    好吧,我在hibernate里面加了映射就好了。