Именованный запрос для дат (месяц и год)

У меня есть следующий класс домена:

class Car{

 int hp
 Date registrationDate

}

Теперь я пытаюсь создать именованный запрос, который позволяет мне делать что-то вроде этого:

Car.getCarsByYear(2011)

а также

Car.getCarsByYearMonth(2011,11)

Я не уверен, что второй вариант возможен, или если единственный способ сделать это - это иметь 2 именованных запроса, один на год и один на месяц.

Как вы указываете месяц / год для даты в именованном запросе? Я сделал несколько диких снимков и попытался погуглить, но ничего не нашел.

1 ответ

Решение

Вы можете передать параметры в ваш именованный запрос:

    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()
}
Другие вопросы по тегам