简单的一个 - 什么是Grails的/格姆得到,因为这SQL查询同样的效果的最佳方法:格姆等同于SQL
SELECT YEAR(日期)作为SalesYear, MONTH(日期)作为SalesMonth, SUM(价格)AS TotalSales 销售 GROUP BY YEAR(日期),MONTH(日期) ORDER BY YEAR(日期),MONTH(日期)
简单的一个 - 什么是Grails的/格姆得到,因为这SQL查询同样的效果的最佳方法:格姆等同于SQL
SELECT YEAR(日期)作为SalesYear, MONTH(日期)作为SalesMonth, SUM(价格)AS TotalSales 销售 GROUP BY YEAR(日期),MONTH(日期) ORDER BY YEAR(日期),MONTH(日期)
域类的executeQuery方法允许你运行HQL查询。
如果你看一些例子,你会注意到Hibernate Query Language记得很多SQL,但是是面向对象的。
从Grails的文档:
executeQuery方法允许任意HQL查询的执行。 当查询选择单个字段或计算值时,HQL查询可以返回域类实例或指定的 数据的数组。
因此,在您的情况下,查询将返回指定数据的数组,因为不匹配域类,但您将能够遍历此数据。
假设你映射你的销售表作为销售领域类:
class Sales {
Date date
BigDecimal price
...
static mapping = {
...
}
}
def result = Sales.executeQuery("SELECT YEAR(date) as SalesYear, MONTH(date) as SalesMonth, SUM(Price) AS TotalSales FROM Sales GROUP BY YEAR(date), MONTH(date) ORDER BY YEAR(date), MONTH(date)")
//iterate over the result
result.each { sales ->
println sales[0] //year
println sales[1] //month
println sales[2] //total
}
帮了很多 - 谢谢! – user1609258
您可以使用HQL,看到的executeQuery。 –
对不起,这并没有多大帮助 - 有点像说,你可以使用Java - 见javadoc ... – user1609258
那么,Grails文档不仅仅是一个javadoc,我认为这不是一个很好的例子,但我回答了你的问题质疑并指出消息来源。 –