我有以下域类:
class Car{
int hp
Date registrationDate
}
现在我要做的是创建一个命名查询,使我能够做到这样的事情:
Car.getCarsByYear(2011)
和
Car.getCarsByYearMonth(2011,11)
我不确定第二个是可能的,或者唯一的方法是通过2个命名查询,一个用于一年,一个用于一个月。
如何在命名查询中指定日期的月/年?我拍了一些疯狂的镜头并尝试使用Google搜索,但我什么也没想到。
答案 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()
}