题
我有实体的纬度和经度和我想选择那些最接近的给定点。
我找到了这个例子看起来就像它将工作
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而不是当地的查询。
当我试图像这样的东西的访问用户是抱怨SQRT令牌。
SELECT DISTINCT p, SQRT(....) AS distance, FROM Place p .... ORDER BY distance ASC
有人知道如何编写查询,这样,或许另一种更好的方法吗?
谢谢!/奥斯卡
解决方案
据我可以从这个研究告诉我们,可以试错JPQL根本不具备处理这种情况。我不得不重写我的查询本机。
其他提示
该JPQL语参考 说:
functions_returning_numerics::=ABS(simple_arithmetic_expression)|SQRT(simple_arithmetic_expression)|MOD(simple_arithmetic_expression,simple_arithmetic_expression)|尺寸(collection_valued_path_expression)
所以,你没有 POW
.
你可以安全地使用地查询。
这办法我喜欢,但是让的查询,而无需的计算,然后作出的计算结果在你的代码。它不应该是一个很大的性能的危险。
不隶属于 StackOverflow