2012-03-05 1 views
1

I가 다음 도메인 클래스 : 이제명명 된 쿼리

class Car{ 

int hp 
Date registrationDate 

} 

내가 나를 이런 식으로 뭔가를 할 수있는 명명 된 쿼리 생성됩니다 할 노력하고있어 :

Car.getCarsByYear(2011) 

두 번째이 가능 또는
Car.getCarsByYearMonth(2011,11) 

I'n 확실하지 유일한 방법은이 명명 된 질의를함으로써 그것이 수행하는 경우, 한 해는 한 달, 한 달은 한 달.

명명 된 쿼리의 날짜에 월/년을 어떻게 지정합니까? 나는 야생 샷을 찍고 그것을 검색하려고했지만 아무 것도 생각 나지 않았다.

답변

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() 
} 
+1

한 참고 : 대신, 마르코의 질문,'registrationDate'에서 필드를 사용할 수 있습니다 왜냐하면 읽는 것이 약간 혼란하기 때문입니다. – OverZealous

+1

나는 그 달/년이 params와 같고 더 큰 차를 원하지 않는다고 생각한다. –