java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:u
我创建了一个获取用户计数的方法。这是我的jpa假设。但是我得到了java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:u,hibernate,spring-data-jpa,Hibernate,Spring Data Jpa,我创建了一个获取用户计数的方法。这是我的jpa假设。但是我得到了QuerySyntaxException。我不知道如何解决这个问题 @Query("SELECT COUNT(*) from User u where u.usertype is NULL u.country=?1 and u.state=?2 and u.city=?3 and u.datasource=?4") int getusercount(); 但当我运行代码时,我得到: Error starting
QuerySyntaxException
。我不知道如何解决这个问题
@Query("SELECT COUNT(*) from User u where u.usertype is NULL u.country=?1 and u.state=?2 and u.city=?3 and u.datasource=?4")
int getusercount();
但当我运行代码时,我得到:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: u near line 1, column 78 [SELECT COUNT(*) from User u where u.usertype is NULL u.country=?1 and u.state=?2 and u.city=?3 and u.datasource=?4]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final]
atorg.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:729) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final]
atorg.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_191]
atorg.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:350) ~[spring-orm-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at com.sun.proxy.$Proxy125.createQuery(Unknown Source) ~[na:na]
at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:87) ~[spring-data-jpa-2.1.10.RELEASE.jar:2.1.10.RELEASE]
问题是您忘记在第一个条件之后的查询中添加
和运算符。查询应该是
@Query("SELECT COUNT(*) from User u where u.usertype is NULL and u.country=?1 and u.state=?2 and u.city=?3 and u.datasource=?4")
异常org.hibernate.hql.internal.ast.QuerySyntaxException
自解释查询中存在语法错误。它显示意外标记:在第1行附近的u,第78列
表示在条件
u.usertype为NULL
后,它需要一些运算符或其他sql关键字,如order by等,但它却包含意外的u.country。问题在于,您忘记在查询中第一个条件后添加和
运算符。查询应该是
@Query("SELECT COUNT(*) from User u where u.usertype is NULL and u.country=?1 and u.state=?2 and u.city=?3 and u.datasource=?4")
异常
org.hibernate.hql.internal.ast.QuerySyntaxException
自解释查询中存在语法错误。它表示意外标记:第1行第78列附近的u
意味着在条件u.usertype in NULL
之后,它需要一些运算符或其他sql关键字,如order by等,但它具有意外的u.country。&&operator or AND operator?因为我已经写了,在我在这里使用的每一个条件下。和操作员。它不区分大小写,因此使用和与解决ANDError相同。谢谢,很好。投票并接受它&&运算符还是And运算符?因为我已经写了,在我在这里使用的每一个条件下。和操作员。它不区分大小写,因此使用和与解决ANDError相同。谢谢,很好。投赞成票并接受它