gpt4 book ai didi

java - 使用 Hibernate 调用 MySQL 存储过程时分页不起作用

转载 作者:行者123 更新时间:2023-12-01 04:52:11 25 4
gpt4 key购买 nike

我有一个 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);

谁能给我解决问题是什么?

谢谢...

最佳答案

这显然是您使用的jdbc驱动程序错误;

也可以尝试使用 setFetchSize ,如果这也不起作用,

如果您想显示全部查询的详细信息并且数据不多,并且您应该存储所有数据而不调用此方法,我建议不要以 block 的形式获取查询的详细信息 query.setMaxResults(ps ); 放入集合中。

当您想在页面中显示该数据时,如果您使用的是 List,则获取 subList,在应用程序级别分解数据,然后显示它在您看来,本例中是 jsp

关于java - 使用 Hibernate 调用 MySQL 存储过程时分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14785384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com