当前位置: 首页 > 知识库问答 >
问题:

执行 hql 查询时出错

司空鸿禧
2023-03-14

使用执行hql查询时出现错误

Query query = session.createQuery(q);

我的疑问是

select AU_USER from AU_TABLE where AU_ID in(010012025160151756912703600209,010012025160150254316794700103)

堆栈跟踪是

2018-07-06 11:25:05 ERROR ErrorCounter:54 - line 1:74: unexpected token: 912703600209
2018-07-06 11:25:05 ERROR ErrorCounter:50 - line 1:74: unexpected token: 912703600209
line 1:74: unexpected token: 912703600209
    at org.hibernate.hql.internal.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:646)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2595)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2456)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2420)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2336)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2301)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.expression(HqlBaseParser.java:2011)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.compoundExpr(HqlBaseParser.java:3062)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.inList(HqlBaseParser.java:2884)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2730)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2456)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2420)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2336)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2301)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.expression(HqlBaseParser.java:2011)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalExpression(HqlBaseParser.java:1787)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.whereClause(HqlBaseParser.java:452)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:707)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:294)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:157)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:267)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:181)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:137)
    at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105)
    at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
    at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221)
    at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199)
    at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1778)
    at com.adeptia.dao.MigrationDao.getIndigoUsersBySchemaIds(MigrationDao.java:1096)
    at com.adeptia.dao.MigrationDao.main(MigrationDao.java:1120)
2018-07-06 11:25:05 WARN  HqlParser:259 - HHH000203: processEqualityExpression() : No expression to process!
2018-07-06 11:25:05 ERROR ErrorCounter:54 - line 1:109: unexpected token: 94700103
2018-07-06 11:25:05 ERROR ErrorCounter:50 - line 1:109: unexpected token: 94700103
line 1:109: unexpected token: 94700103
    at org.hibernate.hql.internal.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:646)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2595)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2456)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2420)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2336)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2301)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.expression(HqlBaseParser.java:2011)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.compoundExpr(HqlBaseParser.java:3069)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.inList(HqlBaseParser.java:2884)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2730)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2456)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2420)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2336)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2301)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.expression(HqlBaseParser.java:2011)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.logicalExpression(HqlBaseParser.java:1787)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.whereClause(HqlBaseParser.java:452)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:707)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:294)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:157)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:267)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:181)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:137)
    at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105)
    at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
    at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221)
    at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199)
    at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1778)
    at com.adeptia.dao.MigrationDao.getIndigoUsersBySchemaIds(MigrationDao.java:1096)
    at com.adeptia.dao.MigrationDao.main(MigrationDao.java:1120)
2018-07-06 11:25:05 WARN  HqlParser:259 - HHH000203: processEqualityExpression() : No expression to process!

共有2个答案

马野
2023-03-14

使用createSQLQuery而不是createQuery解决了问题

Query query = session.createSQLQuery(q);
呼延鹏云
2023-03-14

如果您像这样执行 sql 查询:

String q="select AU_USER from AU_TABLE where AU_ID in(010012025160151756912703600209,010012025160150254316794700103)";

然后尝试以下代码:

Query query = session.createQuery(q.toString());

我希望你的问题得到解决。如果仍有问题,请再次发布查询。

 类似资料:
  • 我知道要冬眠。我有一个sql语句 我尝试用createCriteria和HQL实现它。 HQL: 问题是,此HQL的执行时间延长了10倍。并执行许多不必要的查询。我尝试使用注释字符串进行转换,它有了一些改进,但仍然比createCriteria查询长5倍,此外,我无法进行此转换 <代码>列表 版本数据防御

  • 执行获取HQL查询时出现异常。查询大部分时间都有效,但有时会显示此异常 数据库是MySQL,使用的服务器是JBoss 5.1.0 GA 显示的错误是: 组织。冬眠例外GenericJDBCException:无法在组织上执行查询。冬眠例外SQLStateConverter。在组织中处理非特定异常(SQLStateConverter.java:126)。冬眠例外SQLStateConverter。o

  • 问题内容: 我有带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax/p

  • 我对Neo4J花了不少心思,但对graphql却一筹莫展 我通过运行以下操作创建了graphql模式: 我有一个带有三个标签的节点类型。我尝试在graphiql中运行以下查询,得到了同样的错误。由于堆栈的原因,我想知道graphiql是否在添加meta并移动到了neo4j浏览器--同样的错误。 查询: 错误: 我可能做了一些明显错误的事情,但任何帮助都将是感激的

  • 我很少在查询中使用use ecuteQuery,因为有时我遇到这个错误,我不知道如何修复它,这是我的代码: 我得到了这个错误消息:找不到命名参数[refDate]我试图删除不需要与我声明的参数(和rt . register . birth date)进行比较的条件

  • 我正在编写一个util函数,以根据传递给我的任何HQL获取总记录计数,而不加载所有数据。传入的HQL可能非常复杂,有大量的选择、联接、条件、分组和排序。为此,我想用中选择计数(*)来包装查询。我发现,这在HQL中是不可能的,因为Hibernate不允许在FROM元素中进行子查询。现在,我正在尝试将这个随机的HQL查询转换为一个可执行的SQL语句,而不内联参数值,该查询可能具有一些命名参数(其中一些