Spring @查询返回wierd错误

Spring @查询返回wierd错误,spring,spring-boot,spring-data-jpa,Spring,Spring Boot,Spring Data Jpa,我正在使用谷歌地图创建商店定位器。im使用springboot启动程序jpa 并将harsvine公式放入我的存储库服务,如下所示: //this is store locator in km @Query("SELECT p, (6371 * acos(cos( radians( :latitude ) ) * cos( radians( p.latitude ) ) * cos(radians( p.long ) - radians( :longitude )) +sin(radians(:

我正在使用谷歌地图创建商店定位器。im使用springboot启动程序jpa

并将harsvine公式放入我的存储库服务,如下所示:

//this is store locator in km
@Query("SELECT p, (6371 * acos(cos( radians( :latitude ) ) * cos( radians( p.latitude ) ) * cos(radians( p.long ) - radians( :longitude )) +sin(radians(:latitude)) * sin(radians(p.latitude)))) AS distance FROM Location p HAVING distance < :radius ORDER BY distance LIMIT 25")
List<Location> getMeListPlaces(@Param("radius") long radius, @Param("latitude") long latitude, @Param("longitude") long longitude);
//这是以km为单位的存储定位器
@查询(“选择p,(6371*acos(cos(弧度(:纬度))*cos(弧度(p.纬度))*cos(弧度(p.长)-弧度(:经度))+sin(弧度(:纬度))*sin(弧度(p.纬度)))作为距离位置p的距离,该位置p的距离<:半径顺序受距离限制25”)
列出getMeListPlaces(@Param(“半径”)长半径、@Param(“纬度”)长纬度、@Param(“经度”)长经度);
我得到的误差如下

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: HAVING near line 1, column 233 [SELECT p, (6371 * acos(cos( radians( :latitude ) ) * cos( radians( p.latitude ) ) * cos(radians( p.long ) - radians( :longitude )) +sin(radians(:latitude)) * sin(radians(p.latitude)))) AS distance FROM com.mashitah.model.Location p HAVING distance < :radius ORDER BY distance LIMIT 25]
由以下原因引起:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:在第1行第233列附近[选择p,(6371*acos(弧度(:纬度))*cos(弧度(:纬度))*cos(弧度(:纬度))*cos(弧度(:经度))+sin(弧度(:纬度)))距离com.mashitah.model.Location p的距离<:半径顺序距离限制25]

我在这里犯了一些错误吗?因为我将这个公式用于谷歌地图文档

谷歌文档是关于MySQL SQL查询的。这里有一个JPQL查询。这是两种不同的语言。正如C++和java是两种不同的语言。@ JBNizet,我可以用MySQL JDBC把JPQL翻译成MySQL查询。仍然在相同的mysql平台上使用sql语法。所以,我在这里不是在讨论我使用的平台,而是为什么mysql不接受那里的语法查询。它甚至不去mysql。Hibernate JPQL/HQL解析器不接受它,因为向它发送的是SQL查询,而不是JPQL/HQL查询。