我嘗試用這個的HQL查詢:Hibernate異常。 QuerySyntaxException:意外的標記:HAVING
Result.find("SELECT c, (3959 * acos(cos(radians(?)) * "+
"cos(radians(c.latitude)) *"+
"cos(radians(c.longitude) - radians(?)) +"+
"sin(radians(?)) * sin(radians(c.latitude)))) " +
"AS distance FROM City c HAVING distance < ? ORDER BY distance ASC",
latitude, longitude, latitude, radius).fetch();
但結果:
IllegalArgumentException occured : org.hibernate.hql.ast.QuerySyntaxException: unexpected token: HAVING near line 1, column 204 [SELECT c, (3959 * acos(cos(radians(?)) * cos(radians(c.latitude)) *cos(radians(c.longitude) - radians(?)) +sin(radians(?)) * sin(radians(c.latitude)))) AS distance FROM models.City c HAVING distance < ? ORDER BY distance ASC]
現在''where'子句'中'未知列的距離' – 2012-04-12 06:35:57
'distance'是列的別名,你必須把整個計算放在select中,也放在where子句中。而不是列別名 – Vikram 2012-04-12 06:38:22
但是我無法對城市列表進行排序。 – 2012-04-12 06:41:02