Hibernate中的分页

时间:2013-02-01 04:43:39

标签: java spring hibernate

我有一个MySQL Strored Procedure,我想使用Hibernate调用存储过程,并希望显示带分页的结果。

我尝试过以下代码:

public List<Master> getAbsentDetails(String fromdate, String todate,int pno) {
        Query query=getSession().getNamedQuery("AbsentReportproc");
        System.out.println("Test");
        query.setParameter("_fromdate", fromdate);
        query.setParameter("_todate", todate);
        query.setMaxResults(10);
        query.setFirstResult(ps*(pno-1));

        List<Master> empList=query.list();
        return empList;}

但是当我执行上面的代码时,我会显示以下错误:

org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 1064, SQLState: 42000
Feb 1, 2013 10:08:11 AM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 10' at line 1

注意: 如果我删除以下声明

  query.setMaxResults(10);

然后我在jsp页面中显示了我的存储过程的结果

感谢

1 个答案:

答案 0 :(得分:2)

当我遇到同样的问题时,我将set maxresult移动到下面并且工作正常

criteria.setFirstResult(10* (pageNumber - 1));
criteria.setMaxResults(10);