Hibernate 在GORM标准查询中进行计算
这是基本的域类Hibernate 在GORM标准查询中进行计算,hibernate,grails,criteria,gorm,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; 可以使用executeQuery运行选择单个列的H
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;
可以使用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')
这将返回对象[]的列表,例如
for (row in results) {
String name= row[0]
String lat= row[1]
...
}
我希望使用
createCriteria
以GORM形式显示它,也许这将有助于您的查询按条款顺序显示未找到任何列distance
。您需要将整个计算按以下子句顺序排列:order by SQRT(POW(69.1*(lat-LAT1),2)+POW(69.1*(LNG1-lng)*COS(lat 57.3),2))