2011-03-15 2 views
3

나는 페이지 매기기를하려하지만 지금까지는 만들 수 없습니다. 2 개의 도메인 클래스와 1 대 다수의 관계가 있습니다.GORM paginateParams 사용 문제

class User { 
    static hasMany = [contacts:Contact] 
} 

class Contact { 
    static belongsTo = [ user : User ] 
} 

나는 20 개의 연락처가 있습니다. 그것이 작동하지 않는

def maxResult = 20 

def startIndex = 0 

def contacts = Contact.findAllByUser(user, [max:maxResult, offset:startIndex]) 

:이 같은 쿼리를 만들려고

. 쿼리가 작동하지만 갬이있는 페이지 매김이 작동하지 않습니다. 결과는 단지 1 개의 접촉 객체입니다.

시도해 보았습니다.

def startIndex = 0 

def contacts = Contact.findAllByUser(user, [offset:startIndex]) 

결과는 20 개체입니다.하지만 다른 startIndex 값으로 시도해도 작동하지 않습니다. startIndex = 5 인 경우 결과는 20 ontact 객체입니다.

누군가 이것에 대해 어떤 생각을 가지고 있습니까? 어쩌면 내가 뭔가 잘못하고있는 것일 수도 있습니다. 어쩌면 곰의 문제 일 수도 있습니다. 나는 그 해답을 찾지 못했다. 귀하의 답변에 감사드립니다.

답변

1

아직이 일을하기 위해 DynamicFinder를 시도하지는 않았지만 문서를 볼 때 구문이 옳은 것 같습니다. 또는 createCriteria를 사용하여 페이징 문제를 해결합니다.

def queryResult = Contact.createCriteria().list(max: max, offset: offset) { 
      and { 
       /// FILTER /// 
       user { 
        eq("id", userInstance.id) 
       } 
      } 
    } 
+0

나는 groovy.lang.MissingMethodException했을 때 : 방법 없음 서명 : 정적 com.erimerturk.contact.model.User.call()를 는 인수 유형에 적용 : (com.erimerturk.contact.service. impl.ContactServiceImpl $ _getContacts_closure1_closure12_clo sure13_closure14) 값 : [com.erimerturk.contact.service.impl.ContactServiceImpl $ _getContacts_closure1_closure12_closure13_c losure14 @ 1fd0cc] | 가능한 해결책 : save(), wait(), any(), getAll(), save (java.util.Map), save (java.lang.Boolean) – erimerturk

+0

@erimeturk : 오류 메시지가 이상하게 보입니다. 모델이 괜찮은 것처럼 보이지만 도메인 클래스에 뭔가 잘못되었다는 것을 의미 할 수 있습니다. 명령 "grails clean"을 시도한 다음 다시 컴파일하십시오. –

+0

@erimeturk : 코드에 구문 오류를 없애기 위해 "}"을 추가했습니다. –