此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【javaboat】截止到2008-07-11 21:53:01的历史汇总数据(不包括此帖):
发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
回帖的总数量:2                        得分贴总数量:1                        回帖的得分率:50%                      
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    我同学有个笨办法,把SQL写到里边,可以用TOP,具体我不知道他怎么实体的,明天回果没人回的话我给你问问?
      

  2.   

    用分页功能吧: String hql = "from  tableName where 条件 order by id asc,age desc, salary desc;
    Query q = sess.createQuery(hql);
    q.setMaxResults(20);
    q.setFirstResult(1);
    List lst = q.list();
    lst 就是你要的列表,里面存放tableName这个javaBean;
    q.setMaxResults(20);//指定一页中最多可以有20条记录;
    q.setFirstResult(1);//从结果集的第一条数据开始返回一页的数据(即是前1到20条数据);
      

  3.   

    如果用分页,返回的应当是list对象,只是单个数据(首条记录)也是的。现在的相法是,能不能直接提取首记录,以对象形式返回。另外一点,想了解一下 HibernateDaoSupport本身是不是无法做到分页功能的。
      

  4.   

    楼主问的应该是使用HibernateDaoSupport获取分页数据的问题吧,你需要使用getHibernateTemplate().executeFind()方法,然后传入一个HibernateCallback类的实例.一般是使用匿名回调的方式
    具体的代码实例如下:
    比如要取得某个部门下的员工: public List<Userinfor> findUsersByDeptId(final String deptId,
    final int startRowIndex, final int pageSize)
    {
    List users = getHibernateTemplate().executeFind(new HibernateCallback()
    {
    // 一定要用此种方式获得Session对象的实例
    public Object doInHibernate(Session session)
    throws HibernateException, SQLException
    {
    StringBuffer sb = new StringBuffer();
    // 排序的问题直接放到hql里就好了
    sb.append(" from Userinfor userinfor");
    sb.append(" where userinfor.departmentid=?");
    sb.append(" order by userinfor.username");
    String sql = sb.toString();
    // 创建Query对象,然后就可以设置每页取得的条数了
    Query query = session.createQuery(sql);
    query.setString(0, deptId);
    query.setFirstResult(startRowIndex);
    query.setMaxResults(pageSize);
    return query.list();
    }
    });
    return (List<Userinfor>) users;
    }