Kueri bernama untuk tanggal (bulan dan tahun)

Saya memiliki kelas domain berikut:

class Car{

 int hp
 Date registrationDate

}

Sekarang yang saya coba lakukan adalah membuat kueri bernama yang memungkinkan saya melakukan sesuatu seperti ini:

Car.getCarsByYear(2011)

Dan

Car.getCarsByYearMonth(2011,11)

Saya tidak yakin yang kedua mungkin atau satu-satunya cara untuk melakukannya adalah dengan memiliki 2 kueri bernama, satu untuk tahun dan satu untuk bulan.

Bagaimana Anda menentukan bulan/tahun untuk suatu tanggal dalam kueri bernama? Saya mengambil beberapa gambar liar dan mencoba mencarinya di Google tetapi tidak menghasilkan apa-apa.


person marko    schedule 05.03.2012    source sumber


Jawaban (1)


Anda dapat meneruskan parameter ke namequery Anda :

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

dan menyebutnya seperti ini:

 def search() {
    render Car.getCarsByYearMonth(2012,2).list()
}
person Alidad    schedule 05.03.2012
comment
Satu catatan: Anda mungkin ingin menggunakan bidang dari pertanyaan marko, registrationDate, daripada date yang umum, karena agak membingungkan untuk dibaca. - person OverZealous; 06.03.2012
comment
Saya berasumsi dia menginginkan mobil yang bulan/tahunnya sama dengan parameternya, bukan lebih besar darinya - person Dónal; 06.03.2012