我有经度和纬度的图元,我想选择最接近给定点的图元。

我发现这个例子看起来可行

SELECT *,
    SQRT(POW((69.1 * (locations.latitude - 27.950898)) , 2 ) +
    POW((53 * (locations.longitude - -82.461517)), 2)) AS distance
FROM locations
ORDER BY distance ASC
LIMIT 5


但是我更喜欢使用JPQL,因为我还有很多其他的联接等,在JPQL而不是本机查询中感觉更容易。

当我尝试这样的事情时,JPA抱怨SQRT令牌。

SELECT DISTINCT p, SQRT(....) AS distance, FROM Place p .... ORDER BY distance ASC


任何人都知道如何编写这样的查询,或者是另一种更好的方法?

谢谢!
/奥斯卡

最佳答案

据我从研究得出的结论,可能会反复试验,JPQL根本无法应对这种情况。我不得不将查询重写为本地查询。

关于java - JPQL通过纬度和经度获取最近的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2064977/

10-11 08:29