简体   繁体   English

使用Spring Data查询和Hibernate时的NoViableAltException

[英]NoViableAltException while using Spring Data query with Hibernate

I am specifying a Spring Data query using @Query on a repository method but it is throwing a NoViableAltException exception. 我在存储库方法上使用@Query指定Spring Data查询,但它抛出了NoViableAltException异常。

This is the repository interface method and annotation I am using: 这是我正在使用的存储库接口方法和注释:

@Query(value="SELECT one.saveLine, two.saveLine FROM (SELECT * FROM SaveOutputTable WHERE saveType = 'R' and seqId = '0' and executionId =:executionIdOne ) one JOIN (SELECT * FROM SaveOutputTable WHERE saveType = 'R' and seqId = '0' and executionId =:executionIdTwo) two ON one.lineId = two.lineId")
public List<ResultCompare> findByParamResult(@Param("executionIdOne") long executionIdOne,@Param("executionIdTwo") long executionIdTwo);

This causes the following error: 这会导致以下错误:

antlr.NoViableAltException: unexpected token: (
at org.hibernate.hql.internal.antlr.HqlBaseParser.fromRange(HqlBaseParser.java:1501) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.antlr.HqlBaseParser.fromClause(HqlBaseParser.java:1325) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1045) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:730) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:323) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:186) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:279) [hibernate-core-5.0.9.Final.jar:5.0.9.Final]

This error has absolutely nothing to do with Hibernate. 这个错误与Hibernate完全无关。

You are using the Spring Data annotation, @Query which normally takes a JPQL query string. 您正在使用Spring Data注释, @Query通常采用JPQL查询字符串。 What you are specifying is a native query SQL string, so you need to modify the annotation and also provide nativeQuery=true . 您指定的是本机查询SQL字符串,因此您需要修改注释并提供nativeQuery=true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在@Query中将@Param作为List跳过如果在Spring Data JPA中为null:antlr.NoViableAltException:意外的AST节点 - Skipping @Param as List in @Query if is null in Spring Data JPA : antlr.NoViableAltException: unexpected AST node Spring Boot、Hibernate、Querydsl:antlr.NoViableAltException:意外令牌 - Spring Boot, Hibernate, Querydsl: antlr.NoViableAltException: unexpected token 使用 JPA 和休眠查询数据时出现 NullPointerException - NullPointerException while query data using JPA with hibernate 使用查询时在Hibernate中查找部分缓存数据 - Look for partial cache data in Hibernate while using query 如何在使用带有 spring 数据的 MongoRepository 的查询注释时显示查询 - how to show query while using query annotations with MongoRepository with spring data Spring data JPA Hibernate - EntityManager.executeUpdate or spring repository both fails while using to query/update entity in multi-schema one by one - Spring data JPA Hibernate - EntityManager.executeUpdate or spring repository both fails while using to query/update entity in multi-schema one by one 使用Spring Data和Hibernate的Spring MVC分页 - Spring MVC pagination using Spring Data and Hibernate 我想使用休眠查询的春季数据 - spring data i want to use hibernate query 使用Hibernate和Spring时连接过多 - Too many connections while using Hibernate and Spring OneToOne使用Hibernate和Spring数据创建查询 - OneToOne create query with Hibernate and Spring data
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM