我有一个MySQL存储过程click here for stored procedure并使用Hibernate调用过程
Hibernate代码:
int ps=5;
SQLQuery query=session2.createSQLQuery("CALL AbsentReportproc(:_fromdate,:_todate)");
query.setParameter("_fromdate", fromdate);
query.setParameter("_todate", todate);
query.setFirstResult(ps*(pno-1));
query.setMaxResults(ps);
List<Object[]> empList=query.list();
当我执行上面的代码时,我显示以下错误消息:
org.hibernate.exception.SQLGrammarException: could not execute query
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 5' at line 1
注意:如果我从代码中删除以下语句,我会在一个jsp页面中显示所有记录
query.setMaxResults(PS);
任何人都可以给我解决问题是什么?
感谢...
答案 0 :(得分:0)
这显然是您正在使用的jdbc驱动程序错误;
也可以使用setFetchSize
尝试此操作,如果这也不起作用,
我建议如果你想全部显示它们并且没有太多数据,那么不要在块中查询详细信息,而是应该存储所有数据而不将此方法query.setMaxResults(ps);
调用到集合中
当您想在页面中显示该数据时,如果您使用subList
,请获取List
,以便在应用程序级别中断数据,然后将其显示在{{1}的视图上{1}}在这种情况下。