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]'