GBase 8s
其他
问答

hibernate执行hql报201错误

发表于2023-09-18 18:07:09117次浏览8个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:330

【操作系统】:centos

【CPU】:x86

【问题描述】*: 程序中SQL在数据中运行正常,SQL为select filter FROM Student。错误内容:

Hibernate: 
   select
       student0_.“filter” as col_0_0_ 
   from
       Student student0_
九月 18, 2023 6:05:12 下午 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: -202, SQLState: IX000
九月 18, 2023 6:05:12 下午 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: An illegal character has been found in the statement.
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not prepare statement
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1928)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1897)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1875)
    at org.hibernate.loader.Loader.doQuery(Loader.java:919)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336)
    at org.hibernate.loader.Loader.doList(Loader.java:2611)
    at org.hibernate.loader.Loader.doList(Loader.java:2594)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2423)
    at org.hibernate.loader.Loader.list(Loader.java:2418)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:501)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:226)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)

 

评论

登录后才可以发表评论
用户头像
远方发表于 2年前
错误原因是Gbase8s无法识别双引号导致,hibernate将filter当成关键字来处理,转换的HQL自动加上了双引号。
解决办法:
hibernate.auto_quote_keyword=false
最佳回答
用户头像
路路路发表于 9个月前
如果还有其它 问题,可以再来发帖
用户头像
路路路发表于 8个月前
GBase用户31099发表于 6个月前
12
GBase用户19279发表于 3个月前
1
GBase用户19279发表于 3个月前
2
GBase用户19279发表于 3个月前
3
用户头像
levvel发表于 3个月前
观点很新颖!