Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 冬眠-春天的哈弗森公式_Java_Mysql_Spring_Hibernate_Jakarta Ee - Fatal编程技术网

Java 冬眠-春天的哈弗森公式

Java 冬眠-春天的哈弗森公式,java,mysql,spring,hibernate,jakarta-ee,Java,Mysql,Spring,Hibernate,Jakarta Ee,哈弗森公式 SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20 我尝试使用Hiber

哈弗森公式

SELECT 
   id, 
  (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) 
    - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance 
FROM markers 
HAVING distance < 25 
ORDER BY distance LIMIT 0 , 20
我尝试使用Hibernate编写:

String query = "SELECT *, ( 3959 * acos( cos( radians(?) ) * cos( radians( Vehicle.lat ) ) * cos( radians( Vehicle.lng ) - radians(-?) ) + sin( radians(37) ) * sin( radians( Vehicle.lat ) ) ) ) AS distance FROM VehicleDetails Vehicle HAVING distance < 25 ORDER BY distance LIMIT 0 , 20";

Object[] params  = {lat,lng};

List<VehicleDetails> vehicledata = getHibernateTemplate().find(query,params);
例外:org.hibernate.hql.ast.QuerySyntaxException:

如果没有GROUPBY子句,则不需要having子句,可以使用where。我相信错误是由于*在第一个选择中,您可能希望重写为

SELECT Vehicle.*, ( 3959 * acos( cos( radians(?) ) * cos( radians( Vehicle.lat ) ) * cos( radians( Vehicle.lng ) - radians(-?) ) + sin( radians(37) ) * sin( radians( Vehicle.lat ) ) ) ) AS distance FROM VehicleDetails Vehicle where distance < 25 ORDER BY distance LIMIT 0 , 20"

Pradeep,我已经更新了查询,这是我得到的错误-Exception:'org.hibernate.hql.ast.QuerySyntaxException:应为IDENT,在第1行第17列附近找到*[选择Vehicle.*3959*acos cos radians*cos radians Vehicle.lat*cos radians Vehicle.lng-弧度-?+sin弧度37*sin radians Vehicle.lat作为与com.app.account.Vehicle的距离,其中距离小于25,按距离限制0,20]'