gpt4 book ai didi

java - setMaxResults(max_size) 抛出 Sql 命令未正确结束的异常

转载 作者:行者123 更新时间:2023-12-01 09:36:43 25 4
gpt4 key购买 nike

我使用的是 hibernate 版本 4.3.11.Final 和 1.0.0.Final。hibernate.dilect=org.hibernate.dialect.Oracle12cDialect

final String hql1 = "select s from " + app.class.getSimpleName() + " s where s.Id = " + getId();
When i'm calling
mEntityManager.createQuery(hql1, app.class).setMaxResults(3);

生成的 hql =“从 test.APP_TABLE app_ 中选择 app_.ID 作为 ID6_157_,其中 app_.ID=83700 首先获取?仅行

问题似乎是“?”没有被 setMaxResults 的值 3 替换,但不知道如何修复它。它抛出异常:-

java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:80)
org.hibernate.loader.Loader.getResultSet(Loader.java:2065)
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)
org.hibernate.loader.Loader.doQuery(Loader.java:909)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
org.hibernate.loader.Loader.doList(Loader.java:2553)
org.hibernate.loader.Loader.doList(Loader.java:2539)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
org.hibernate.loader.Loader.list(Loader.java:2364)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573)
org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449)

如果我从 createQuery 中删除 setMaxResults(3),查询工作正常。

任何建议可能是什么原因。

最佳答案

感谢大家的回复。我找到了解决我的问题的方法。我将 hibernate 方言更改为“org.hibernate.dialect.Oracle10gDialect”,我的问题得到了解决。谢谢。

关于java - setMaxResults(max_size) 抛出 Sql 命令未正确结束的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834759/

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