query = session.createSQLQuery(SQL);
query.setFirstResult(star);
query.setMaxResults(20);
分页是每次取20条记录,这没有问题,但设置起始位置时没反应,都是从0开始取,我手动把star设置成20,结果还是从0开始取,这什么原因?求大神解答。
是不是我用的是createSQLQuery,而setFirstResult只是针对createQuery。小弟是新手,请各位帮帮忙。

解决方案 »

  1.   

    兄弟  你的代码贴的不全啊  我曾经写过 共你参考
    public List<User> showall(final int page, final int pageSize)
    {
    final String hql = "from User f order by f.price asc,f.yuexiaoliang desc";
    List list = (List) ht.execute(new HibernateCallback()
    { public Object doInHibernate(Session session)
    throws HibernateException, SQLException
    {
    Query query = session.createQuery(hql);
    query.setFirstResult((page - 1) * pageSize);
    query.setMaxResults(pageSize);
    return query.list();
    }
    });
    return list; }
      

  2.   

    感谢各位的回答,问题解决了
    源代码是
    query = session.createSQLQuery(SQL);
    query.setFirstResult(star);
    query.setMaxResults(20);
    query.setParamer(...);
    改成
    query = session.createSQLQuery(SQL);
    query.setParamer(...);
    query.setFirstResult(star);
    query.setMaxResults(20);
    先设置参数,然后在设置分页,主要是顺序问题