//HQL 分页查询0-20 
Query query = session.createQuery("from tableName t order by t.name asc");
query.setFirstResult(0);
query.setMaxResults(20);
list result = query.list();

解决方案 »

  1.   

    给你一个我做的、
    public class PagedList implements Serializable {
    public static final long serialVersionUID=0L;
        public static final int DEFAULT_PAGE_SIZE = 10; public static final int DEFAULT_MAX_PAGES = 10;
    private List source;

    private int pageSize = DEFAULT_PAGE_SIZE; private int page = 0;

    private int maxPages = DEFAULT_MAX_PAGES;

    private long count;

        /**
         * @return 返回 count。
         */
        public long getCount() {
            return count;
        }
        /**
         * @param count 要设置的 count。
         */
        public void setCount(long count) {
            this.count = count;
        }
        /**
         * @return 返回 maxPages。
         */
        public int getMaxPages() {
            return maxPages;
        }
        /**
         * @param maxPages 要设置的 maxPages。
         */
        public void setMaxPages(int maxLinkedPages) {
            this.maxPages = maxLinkedPages;
        }
        /**
         * @return 返回 page。
         */
        public int getPage() {
            return page;
        }
        /**
         * @param page 要设置的 page。
         */
        public void setPage(int page) {
            this.page = page;
        }
        /**
         * @return 返回 pageSize。
         */
        public int getPageSize() {
            return pageSize;
        }
        /**
         * @param pageSize 要设置的 pageSize。
         */
        public void setPageSize(int pageSize) {
            if(pageSize>0)            
                this.pageSize = pageSize;
        }
        /**
         * @return 返回 source。
         */
        public List getSource() {
            return source;
        }
        /**
         * @param source 要设置的 source。
         */
        public void setSource(List source) {
            this.source = source;
        }
    }
    方式
    public PagedList getInPageList(String sql, int page, int size)
    throws Exception {
    PagedList pagedList = new PagedList(); if (size <= 0) {
    size = PagedList.DEFAULT_PAGE_SIZE;
    }
    pagedList.setPage(page);
    pagedList.setPageSize(size);
    Integer count = new Integer(0);
    StringBuffer buf = new StringBuffer();
    int index = sql.indexOf("from");
    int last_index = sql.indexOf("order by");
    buf.append("select count(*)");
    buf.append(sql.substring(index, last_index)); Session s = SessionFactoryUtils.getSession(super.getSessionFactory(),
    true);
    Query countQuery = s.createQuery(buf.toString());
    List temp = countQuery.list();
    if (!temp.isEmpty()) {
    count = (Integer) (temp.get(0));
    if (count.intValue() == 0) {
    pagedList.setCount(count.longValue());
    pagedList.setMaxPages(0);
    pagedList.setSource(new ArrayList());
    return pagedList;
    }
    }
    temp = null;
    pagedList.setCount(count.longValue());
    pagedList.setMaxPages((count.intValue() - 1) / pagedList.getPageSize()
    + 1); Query query = s.createQuery(sql);
    query.setFirstResult(page * size).setMaxResults(size);
    List list = query.list();
    pagedList.setSource(list); SessionFactoryUtils.releaseSession(s, this.getSessionFactory()); return pagedList;
    }
      

  2.   

    把你邮箱给我,给你一个jbuilder配置hiberate的例子.分页也有呵呵,准备接分了
      

  3.   

    我也要一个,谢谢 [email protected]
      

  4.   

    我也要一个,谢谢 [email protected]
      

  5.   

    Query query = session.createQuery("from tableName t order by t.name asc");
    query.setFirstResult(0);
    query.setMaxResults(20);
    list result = query.list();
    ======================================================
    query.setFirstResult(0); 开始记录
    query.setMaxResults(20); 返回的记录数必须记下当前页码,建议,存在 Session 里
      

  6.   

    还有一点,在hibernate.properties文件中把hibernate.jdbc.use_scrollable_resultset设为TRUE