我需要按距离排序的某个人的人。人员表具有每个人的地址以及经度和纬度字段。我试着用Criteria和createCriteria没有运气。
以下查询通过它返回具有距离值的人。
def query = "from Person as person where SQRT(POW((69.1 * (latitude - ${myPersonLat})) , 2 ) + POW((53 * (longitude - ${myPersonLng})), 2)) < 30"
def results = Person.executeQuery(query)
而不是那样,我需要让所有来自db的人按距离排序。
非常感谢任何有关创建GORM标准的帮助。
答案 0 :(得分:0)
嘿,我不确定确切的语法,但你可以尝试类似的东西:
String query = """
from Person as person
where SQRT(POW((69.1 * (latitude - ${myPersonLat})) , 2 ) + POW((53 * (longitude - ${myPersonLng})), 2)) < 30
order by (POW((69.1 * (latitude - ${myPersonLat})) , 2 ) + POW((53 * (longitude - ${myPersonLng})), 2))
"""
或者,您可以在select / join中命名子查询,然后在上面的两个位置使用它,以减少一些代码重复。不幸的是我离开了我的开发机器,所以我无法测试它。 This HQL doc可能会有所帮助。