2009-11-16 5 views
2
class Address { 
    static hasMany = [addressGroups: AddressGroup] 
    ... 
} 

class AddressGroup { 
    static belongsTo = Address 
    static hasMany = [addresses: Address] 

    String notation; 
    ... 
} 

주어진 AddressGroup에 대해 모든 주소를 가져 오려고합니다.Grails에서 다 대다 관계를 쿼리하는 중 오류가 발생했습니다.

내 코드 :

def params = [max: 10] 
def addressGroup = AddressGroup.findByNotation("asdf") 
def addresses = Address.findAllByAddressGroups(addressGroup, params) 

오류 메시지 :

로그 된 SQL 문 매개 변수 2에 지정된 값 없음 :

select ... from ADDRESSES this_ where this_.id=10 order by this_.id asc limit ** NOT SPECIFIED ** 

... completly 잘못된 것입니다.

아이디어가 있으십니까?

addressGroup.addresses를 사용하여 주소를 가져올 수는 있지만 페이지 매김을 사용하여 테이블에 표시하고 싶습니다. 따라서 최대/오프셋 params가 필요합니다.

답변

1

음 ... GORM 확장 기능을 사용해 보았습니다.하지만 조금 더 가까이서 본 후에는 내가 필요로하는 것이 없다는 것을 알았습니다.

def c = Address.createCriteria() 
def results = c.list { 
    if(params.addressGroup) { 
     addressGroups { 
     eq('id', params.addressGroup) 
     } 
    } 

    maxResults(params.max) 
    order(params.sort, params.order)  
} 
1

동적 찾기가 필요한 페이지 매김 매개 변수를 사용한다고 생각하지 않습니다.

GORM을 약간 확장 한 GORM Labs Plugin을 확인하십시오. "페이지가 매겨진 HasMany 속성"섹션에서는 찾고있는 것을 수행하는 방법을 보여줍니다.

+0

가 ... 감사를 이동하는 방법과 같습니다

는 내가 기준 API를 사용하여 endet! – arturh

관련 문제