2011-08-01 3 views
2

조건을 사용하지 않고 grails에서 PagedResultList를 가져 오는 방법이 있습니까? 나는 그들이 약간 더 복잡하고 단위 테스트를 짜증나게 만들기 때문에 기준을 피하고 싶습니다.Grails PagedResultList

def pagedResultList = MyDomainClass.createCriteria().list(max:10, offset:0) 
                { order("id", "asc") } 

//Below does not return pagedResultList 
def aList = MyDomainClass.list(sort:"id", order:"asc", max:10, offset: 0) 

답변

3

PagedResultList 아래 코드는 단지 기준 기반의 쿼리의 결과를 포장하는 데 사용됩니다 (당신은 그것의 사용 in the source here을 볼 수 있습니다). 정말로 사용하고 싶다면 항상 목록을 처리 할 것이기 때문에 항상 invoke the constructor directly 일 수 있습니다. 물론 totalCount 속성 (아마도 사용자가 관심을 갖고있는 것임)은 설정 해제됩니다.

페이지 된 결과 목록과 총 결과 수를 모두 얻으려는 생각이라면 위의 링크 된 소스에서 PagedResultList을 사용하여도 두 가지를 모두 얻을 수있는 마법을 알 수 없습니다 쿼리).

+1

아, 처음에는 두 개의 쿼리가 실행되고 있다는 것을 몰랐습니다. 이제 나는 그것에 대해 생각하고 그것이 그것이 일을하는 것이 합리적이라고 생각합니다. 그렇게 할 수 없었던 유일한 방법은 SQL 측 대신 앱 측에서 정렬하고 정렬하도록 나열하는 것입니다. – Joseph

4

이것은 단지리스트를 취하는 costructor가 없기 때문에 Grails 2.x에서 깨지기 쉬운 것 같습니다. 비교 http://grails.org/doc/2.1.0/api/grails/orm/PagedResultList.htmlhttp://docs.huihoo.com/grails/1.3.7/api/grails/orm/PagedResultList.html

+1

구현 된 (공용) 메소드에서 차이점을 볼 수 없으므로 흥미 롭습니다. 원하는 작업에 따라 totalCount getter/setter를 추가하는 java.util.List를 기반으로 자신 만의 구현을 만들 수 있습니다. – Joseph

+0

예,이 작업을 수행했는데, 아마 언급 했어야합니다 ;-) –

관련 문제