此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【kobe21】截止到2008-07-09 13:45:07的历史汇总数据(不包括此帖):
发帖的总数量:8                        发帖的总分数:190                      每贴平均分数:23                       
回帖的总数量:6                        得分贴总数量:0                        回帖的得分率:0%                       
结贴的总数量:1                        结贴的总分数:40                       
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:7                        未结的总分数:150                      
结贴的百分比:12.50 %               结分的百分比:21.05 %                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  

解决方案 »

  1.   

    问题似乎出现在query.setFirstResult(firstResult); 
    query.setMaxResults(maxResults); 这两行上,只要有这两行就会报错!这是怎么回事啊?
      

  2.   

    这个是你的分页的吧
    看看我的
    package com.oy.financing.dao.hibernate;import java.sql.SQLException;
    import java.util.List;
    import java.util.regex.Pattern;import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.springframework.orm.hibernate3.HibernateCallback;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.oy.financing.dao.PaginationDao;
    import com.oy.financing.other.Pager;public class PaginationDaoHibernate extends HibernateDaoSupport implements PaginationDao {
        private int pageSize = 30; // 页面的记录数
        private int pageNumber = 1; // 当前页面数
        private int maxPages; // 最大的页面数
        private int maxElements; // 最大记录数
        private String sql; // 查询的记录
        @Override
        public void initQuery(Pager page) {
            // TODO Auto-generated method stub
            this.sql=page.getSql();
            init();
            this.setPageSize(page.getPageSize());
            this.setPageNumber(page.getPageNumber());
        }
        private void init() {
            //System.out.println("注意:init()");
            setMaxElements();
            setMaxPages();
        }    private void setMaxElements() {
            
            String regex = "select((.)+)from";
            Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
            String[] s = p.split(this.sql);
            String newSql = "select count(*) from" + s[1];
            Session session=this.getHibernateTemplate().getSessionFactory().openSession();
            Transaction tr=session.beginTransaction();
            int count = (Integer)session.createQuery(newSql).uniqueResult(); 
            tr.commit();
            session.close();
            this.maxElements=count;
        }    public void setMaxPages() {
            //System.out.println("注意:setMaxPages()"+"pageSize\t"+pageSize+"\tpageNumber\t"+pageNumber);
            if (this.getMaxElements() != 0 && (this.getMaxElements() % this.getPageSize() == 0)) {
                this.maxPages = this.getMaxElements() / this.getPageSize();
            } else {
                maxPages =  this.getMaxElements() / this.getPageSize() + 1;
            }    }       private String sqlModify(String source) {
            String regex = "select((.)+)from";
            Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
            String[] s = p.split(this.sql);
            String newSql = "from "+s[1];
            return newSql;
        }    private int getBeginElement() {
            return (this.pageNumber - 1) * this.pageSize + 1;
        }
        private int getEndElement() {
            int endElement = this.pageNumber * this.pageSize;
            if (endElement >= this.maxElements) {
                return this.maxElements;
            }
            return endElement;
        }       @SuppressWarnings("unchecked")
        @Override
        public List<Object> getList() {
            this.sql=this.sqlModify(this.sql);
            //System.out.println("注意:public List<Object> getList()"+this.sql);
            // 折行代码
            return this.getHibernateTemplate().executeFind(new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException, SQLException {
                    Query query = session.createQuery(PaginationDaoHibernate.this.sql);
                    query.setFirstResult(PaginationDaoHibernate.this.getBeginElement()); // hibernate分页的精髓 呵呵
                    query.setMaxResults(PaginationDaoHibernate.this.pageSize);
                    return query.list();
                }
            });
             @Override
        public int getMaxElements() {
            return this.maxElements;
        }    @Override
        public int getMaxPages() {
            return maxPages;
        }    @Override
        public int getNext() {
            if (pageNumber + 1 >= this.getMaxPages()) {
                return this.getMaxPages();
            }
            return pageNumber + 1;
        }    @Override
        public int getPageNumber() {
            return this.pageNumber;
        }    @Override
        public int getPageSize() {
            return this.pageSize;
        }    @Override
        public int getPrevious() {
            if (pageNumber - 1 <= 1) {
                return 1;
            }
            return this.pageNumber - 1;
        }    @Override
        public boolean hasNext() {
            return pageNumber < this.getMaxPages();
        }    @Override
        public boolean hasPrevious() {
            return this.pageNumber > 1;
        }    @Override
        public boolean isFirst() {
            return pageNumber == 1;
        }    @Override
        public boolean isLast() {
            return this.pageNumber >= this.getMaxPages();
        }    @Override
        public void setPageNumber(int pageNumber) {
            if (pageNumber > maxPages) {
                this.pageNumber = maxPages;
            } else if (pageNumber < 1) {
                this.pageNumber = 1;
            } else {
                this.pageNumber = pageNumber;
            }
        }
        @Override
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }    @Override
        public void QueryByTime(String sql, int pageSize, int pageNumber) {
            // TODO Auto-generated method stub
            
        }     
    }
      

  3.   

    最讨厌这些作广告的to phon_oy :你的分类和我的也差不多啊