Выполнение вычислений в запросе критериев GORM - PullRequest
0 голосов
/ 17 февраля 2012

Это базовый класс домена

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 Ответ

1 голос
/ 17 февраля 2012

Вы можете запускать HQL-запросы, которые выбирают отдельные столбцы с помощью executeQuery:

    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')

Это вернет список объектов [], например,

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