注册

hibernate框架查询数据如果只设置query.setFirstResult(startPosition);不设置query.setMaxResults会导致查询报错

达梦er 2025/03/14 305 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DMV8
【操作系统】:麒麟V10
【CPU】:
【问题描述】*:
java代码使用hibernate框架查询数据,代码如下:
Query query = getEntityManager().createNativeQuery(sql.toString());
query.setFirstResult(startPosition);
像这样只设置了查询数据的偏移量,没有设置结果的最大返回数量,会导致如下报错:
Caused by: dm.jdbc.driver.DMException: 有参数未绑定: 4
at dm.jdbc.driver.DBError.throwz(SourceFile:827)
at dm.jdbc.driver.DmdbPreparedStatement.checkBindParameters(SourceFile:409)
at dm.jdbc.driver.DmdbPreparedStatement.beforeExectueWithParameters(SourceFile:476)
at dm.jdbc.driver.DmdbPreparedStatement.do_executeQuery(SourceFile:628)
at dm.jdbc.driver.DmdbPreparedStatement$2.run(SourceFile:1794)
at dm.jdbc.driver.DmdbPreparedStatement$2.run(SourceFile:1)
at dm.jdbc.driver.DmdbPreparedStatement.executeQuery(SourceFile:1810)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246)
调试代码实际生成的sql为:SELECT * FROM TABLE LIMIT ?,不清楚为什么会生成一个limit限制,相同的代码这在其他数据库中没有遇到过。

回答 0
暂无回答
扫一扫
联系客服