我是用hibernate 的Criteria查询的,是分组查询,就是group by    public  List countNum()
    { DetachedCriteria dc = DetachedCriteria.forClass(CpmsUser.class); dc.setProjection(Projections.projectionList()
   .add(Projections.rowCount(),"usernumber")
   .add(Projections.groupProperty("username"),"username")
         );
dc.addOrder(Order.desc("usernumber"));
dc.addOrder(Order.asc("username")); List list = this.findAllByCriteria(dc);
return list;
    }这个list我
    request.setAttribute("userlist",list);传到页面后,不知道怎么显示出其中的内容,
就是  分组统计的内容       Y0_        Y1_
1 2 asd
2 1 admin
3 1 fds
4 1 xcv平时的查询,我可以转成对象显示,但是这个,主要是生成的结果 字段不明,不知道怎么显示。
所以问问各位,因该怎么解决,或者有什么其他的合适方法。开发框架为struts+spring+hibernate+oracle

解决方案 »

  1.   

    显示方法:无论是jsp,或者struts标签不限
      

  2.   

    request.setAttribute("userlist",list);------------------------------------------
    <%int i=0;%>
    <logic:iterate id="info" name="userlist" type="list里对象的类型" scope="request">
    <td><% =i++%></td>
    <td><bean:write name="info" property="list里对象的字段" scope="page"/></td>
    <td><bean:write name="info" property="list里对象的字段" scope="page"/></td>
    </logic:iterate>
      

  3.   

    主要就是这个list里对象的字段名字不清楚,因为是group by自己生成的
      

  4.   

    findAllByCriteriaz这个方法不是你自己这个类的吗?
      

  5.   

    list中的对象不是对象CpmsUser类中的属性吗?
    你用
    <logic:notEmpty name="uselist">
        <logic:iterate id="result" name="uselist" type="CpmsUser">
             <td><bean:write name="result" property="CpmsUser类中的属性"/></td>
        </logic:iterate>
    </logic:notEmpty>
      

  6.   

    用了group的话结果应该是List<Object[]>的,struts标签我记不清了,用jstl写了<c:forEach var="info" items="userlist">
    <c:forEach var="it" items="info">
    ${it}
    </c:forEach>
    </c:forEach>
      

  7.   

    回zxm_dgcstars() 
    list中的对象不是对象CpmsUser类中的属性吗?当然不是了,用了group by的。回syoumei(只答有趣的题,只解答不甚懂的题) 
    findAllByCriteriaz是自己写的,不过没有什么内容,主要是封装了hibernate中的Factory,与session的建立,连接与关闭
      

  8.   

    我就不写列在网页上的代码了,你直接看看我的java代码iterator = list.iterator();
    while(iterator.hasnext()){
        object[] p = (objcet[])iterator.next();
        String usernumber = p[0];
        String username = p[1];
    }其实关键就是知道group by 返回的是一个object数组的链表
      

  9.   

    jstl标签,我倒是还没有用过,不过可以研究下。但是list中因该不止一个吧       Y0_        Y1_
    1 2 asd
    2 1 admin
    3 1 fds
    4 1 xcv有2列,一个是个数,一个是group by的名字
      

  10.   

    晕,你怎么还没有搞懂呢,返回的是一个“object数组的链表”,也就是list中的每个对象都是一个object[]
      

  11.   

    我记得List存放的是map对象,楼主你可以试试
      

  12.   

    PCSKiller(电脑杀手)不是没有弄懂,是昨天回去了,没有尝试。刚才试了下,有了新问题。list中返回的不是一个object[],而是string.while(iterator.hasNext()){
    String str = (String)iterator.next();
    }
    这样就得到值了,不过是username的,没有分组统计的数,看来可能是查询时候没有装入。不知道各位有没有什么建议,因该怎么写DAO,把怎么结果保存
      

  13.   

    ok,会了,成功了。在我封装的 this.findAllByCriteria(dc);
    中,把返回的List 换成List<Object[]>,就好了。结贴。