我有一个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页面中显示了我的存储过程的结果
感谢
答案 0 :(得分:2)
当我遇到同样的问题时,我将set maxresult移动到下面并且工作正常
criteria.setFirstResult(10* (pageNumber - 1));
criteria.setMaxResults(10);