Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:u_Hibernate_Spring Data Jpa - Fatal编程技术网

java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:u

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

我创建了一个获取用户计数的方法。这是我的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 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相同。谢谢,很好。投赞成票并接受它