谢谢 csdnloading(楼顶主人),但我并不是想问分页如何现实问题,而是crit.setFirstResult(X);当X>0是为什么会出错。
采用createQuery是肯定不会有问题的,因为我也在使用。
采用createCriteria,可以不用写HQL。

解决方案 »

  1.   

    楼主把show_sql打开..看看输出的SQL语句是什么....楼主的查询是不是用到了多表联合查询了?
      

  2.   

    1.show_sql已经打开了,当分别执行crit.setFirstResult(0); 和crit.setFirstResult(1); 时,SQL是一样的,但执行crit.setFirstResult(1); 时,在SQL下面会输出错误信息。
    2004-12-07 11:32:50 net.sf.hibernate.util.JDBCExceptionReporter WARN SQL Error: 0, SQLState: 07009
    2004-12-07 11:32:50 net.sf.hibernate.util.JDBCExceptionReporter ERROR Invalid column name dept_id0_.
    2004-12-07 11:32:50 net.sf.hibernate.util.JDBCExceptionReporter WARN SQL Error: 0, SQLState: 07009
    2004-12-07 11:32:50 net.sf.hibernate.util.JDBCExceptionReporter ERROR Invalid column name dept_id0_.
    2004-12-07 11:32:50 net.sf.hibernate.util.JDBCExceptionReporter ERROR SQLException occurred
    java.sql.SQLException: Invalid column name dept_id0_.
    2.没有用到多表查询,只是单表3.有没有那位人兄帮忙在自己机器上试一下。看看到底是不是Hibernate的bug。如果是bug,就结贴了。
      

  3.   

    应该不会是BUG吧,以前用的好好的
    为什么会在1时报这个错呢Invalid column name dept_id0_.
    楼主在仔细查查表和mapping吧
      

  4.   

    mapping没有问题,因为createQuery也是可以用的,而是mapping是用工具生成。请大家试试。
      

  5.   

    public void test() throws HibernateException {
        Criteria crit = getSearcher().getSess().createCriteria(ForumUser.class);
        crit.setFirstResult(5).setMaxResults(2);
        List l=crit.list();
        for(int i=0;i<l.size();i++){
          ForumUser fu=(ForumUser) l.get(i);
          System.out.println(fu.getId());
        }
      }Hibernate 2.1.7 SQLSERVER 2000
    测试无错.....
      

  6.   

    哦  楼主也是用的SQLSERVER...在报SQLSTATE之前  他应该print SQL语句的....肯定是生成的SQL有问题...
      

  7.   

    crit.setFirstResult(1)和crit.setFirstResult(0)时生成的SQL是一样的,但crit.setFirstResult(1)时报错。
      

  8.   

    好像是不太稳定的问题,我碰到过,是生成的SQL不正确, 一般是有个 ?你吧显示SQL打开,看看就知道了