参考我以前写的这段代码吧:
       先求出总的记录数  用count函数。
       if(total_num % page_size==0){  // 取得总页数
            total_page = total_num/page_size;
        }else{
            total_page = total_num/page_size +1;
        }
        if(pageNo > total_page) pageNo= total_page;
        int start=(pageNo-1)*page_size; //开始数据的位置
        int rowNum=page_size;   //每页显示数据        Session session = getSession(); //取得session
        Query query=session.createQuery(hql); //查询符合条件的数据
        query.setFirstResult(start);
        query.setMaxResults(rowNum);
        List list = query.list();

解决方案 »

  1.   

    谢谢楼上的
    但是楼上的没有理解我的意思!
    楼上说的startRow和rowNum都能获得啊!
    关键是要想得到先排好顺序  
    在从排好顺序
    再从排好顺序里从startRow开始取!上面的是先按索引取出后再排序的!
    也就是说不管你按什么排序  他都是先按索引从startRow取出同样的数据(不管按什么排序取的数据是相同的那几条记录)
    然后再把这些相同的数据排序  并不是先排序再取!我想解决的是先排序再从startRow开始取!(按不同排序大部分取的数据不相同)
    不知道有没有表达清楚!