2013-07-08 2 views
0

내 Grails 앱의 도메인 모델에는 이벤트와 실적 간의 1-N 관계가 있습니다 (많은 아티스트가 각 이벤트에서 수행 할 수 있기 때문에). 가장 최근에 실적이 추가 된 5 가지 이벤트를 검색하고 싶습니다.고유 쿼리에 의해 반환되는 결과 제한

List<Event> event = Event.createCriteria().listDistinct { 
     performances { 
      order("dateCreated", "desc") 
      isNotNull("dateCreated") 
     } 
     maxResults(count) 
    } 

을 당신이 maxResults을 사용하여 서로 다른 쿼리의 결과 집합을 제한 할 수 있음을 보인다 그러나 :

나는 다음과 같은 기준 쿼리와 함께이 일을 시도했다. 이를 달성 할 수있는 또 다른 방법이 있습니까? HQL을 사용하고 있습니까?

답변

4

충분해야합니까? 당신은 또한 같은 쿼리에서 각 event에 해당하는 performances 필요한 경우

Event.executeQuery("select distinct e from Event as e \ 
        inner join e.performances as p \ 
        where p.dateCreated is not null \ 
        order by p.dateCreated desc", [max: 5]) 

, 당신은 inner join fetch를 사용할 수 있습니다.

+0

모든 listDistinict에 대해 HQL을 사용할 예정입니까? – danielad

+0

@danielad 아니요. listDistinct와 함께 페이지 매김을 사용하지 않는 한 기준을 사용할 수 있습니다. 그들은 적절하게 함께 일하지 않습니다. – dmahapatro

관련 문제