看到很多人提问这个问题,不过还是有些地方不明白
例如user表:usercode,username,groupid;
    group表:groupid,groupname;
HQL="select a.usercode,a.username,b.groupname from user a,group b where a.groupid=b.groupid";
    返回的是一个数组,
 List   list=.......   
    Iterator   it   =   list.iterator();     
          while   (it.hasNext())   {     
          Object[]  ob=(Object[])it.next();     
           us=(user)ob[0];
           gp=(group)ob[1];
          }     
    
如果我要在脚本里面用一个table显示所有用户的 usercode,username,groupname 该如何用这个数组呢?这是一个很常见的查询语句,刚学hibernate不久,大家都是怎么解决的呢?

解决方案 »

  1.   

    你应该构建一个List,用来存放结果里面的数据,比如List<User> list = ....在循环里面,用返回的结果数据,创建一个User对象,然后添加到list里面。方法返回 list;
      

  2.   

    ACTION里通过你的这个方法得到一个LIST,然后在JSP页面上取到这个LIST,在迭代一下就行
      

  3.   

    LZ你先将查询结果listresult用session 或者request存储起来
    jsp页面取值
    <logic:iterate id="alist"  name="listresult" scope="session" >
    用户COde:${alist[0]}
    用户名:${alist[1]}
    用户群组:${alist[2]}
    </logic:iterate>
      

  4.   

    忘了说了,我用的是spring,页面用的jstl请问该怎么处理
      

  5.   

    一样的啊,你的list里面装的东西在jsp页面中通过iterator标签去取出来啊!
      

  6.   

    最好的方法是在Service或action中去将你得到的结果从List<Object[]>组织成List<bean>,然后再传页面。
      

  7.   

    最后的解决办法是将HQL="select a.usercode,a.username,b.groupname from user a,group b where a.groupid=b.groupid"; 
    做成视图然后再对视图进行影射解决了。多谢各位