在GORM标准查询中进行计算

时间:2012-02-17 07:23:07

标签: hibernate grails criteria gorm

这是基本的域类

Location {
  double lat;
  double lng
}

我想将此查询转换为GORM格式

SELECT name, lat, lng, SQRT(
    POW(69.1 * (lat -  LAT1), 2) +
    POW(69.1 * (LNG1- lng) * COS(lat / 57.3), 2)) AS distance
FROM location ORDER BY distance;

1 个答案:

答案 0 :(得分:1)

您可以运行使用executeQuery选择单个列的HQL查询:

    def results= location.executeQuery('SELECT name, lat, lng, SQRT(
    POW(69.1 * (lat -  LAT1), 2) +
    POW(69.1 * (LNG1- lng) * COS(lat / 57.3), 2)) AS distance
    FROM location ORDER BY distance')

这将返回一个List of Object [],例如

for (row in results) {
   String name= row[0]
   String lat= row[1]
   ...
}