日期(月和年)的命名查询

时间:2012-03-05 17:46:52

标签: grails date named-query

我有以下域类:

class Car{

 int hp
 Date registrationDate

}

现在我要做的是创建一个命名查询,使我能够做到这样的事情:

Car.getCarsByYear(2011)

Car.getCarsByYearMonth(2011,11)

我不确定第二个是可能的,或者唯一的方法是通过2个命名查询,一个用于一年,一个用于一个月。

如何在命名查询中指定日期的月/年?我拍了一些疯狂的镜头并尝试使用Google搜索,但我什么也没想到。

1 个答案:

答案 0 :(得分:2)

您可以将参数传递给namedquery:

    static namedQueries = {
    getCarsByYearMonth { int year, int month ->
        println "year:"+year
        println  "month:"+month
        def now = Date.parse("yyyy-MM", "${year}-${month}")
        eq 'registrationDate', now
    }
}

并将其称为:

 def search() {
    render Car.getCarsByYearMonth(2012,2).list()
}