1

我有一个 MySQL Strred 过程,我想使用 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 页面中显示我的存储过程的结果

谢谢

4

1 回答 1

2

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

criteria.setFirstResult(10* (pageNumber - 1));
criteria.setMaxResults(10); 
于 2013-02-01T06:08:06.057 回答