2009-11-12 3 views
1

Grails와 동적 언어를 처음 접했을 때 '잘하면 간단한'질문이 있습니다.Grails : FindAllBy와 findAllByTag를 결합하는 방법

제대로 작동하는 taggable 플러그인을 설치했습니다. 태그가있는 배열이 있습니다. findAllByTag를 사용하여 모든 태그에 대해 데이터 집합을 수집합니다. 그 후에 나는 그것을 랜덤 화하고 하나의 항목을 선택한다. 훌륭하게 작동합니다. 이제 DB에서 모든 객체를 가져 가지 않기로 결정했습니다. 나는 단지 모든 creteria (DB column customerID) 만 있으면된다. 이 모양은 다음과 같습니다.

def customerSet = Customer.findAllBycustomerID(params.customerID) 

나는 두 가지 쿼리를 모두 처리했지만 원하는대로 결합 할 수 없습니다. 나는

def hits = customerSet.findAllByTag(tag) 

같은 시도하지만 나는

groovy.lang.MissingMethodException 얻을 : 방법 없음 서명 : java.util.ArrayList.findAllByTag()는 인수 유형에 적용 : (자바 .lang.String) values ​​: [mac]

그런 목록에서 findAllByTag를 수행 할 수 없다고 생각합니다.

def customerSet = Customer.findAllBycustomerID(params.customerID.findAllByTag(tag)) ??? 

덕분에, 클라스

답변

1

이 taggable와 함께 작동하지만 두 속성 동적 파인더를 사용할 수 있는지 잘 모르겠습니다을 :

아니면 내가 이런 식으로 어떻게 든 그것을 어떻게해야합니까 예 그래도 문제가 해결되지 않으면 .findAllByCustomerIdAndTag (고객 ID를, 태그)

, 당신은, 예를 들어 기준을 사용할 수 있습니다

Customer.createCriteria().list{ 
    eq('customerId',someCustomerId) 
    tags{ 
     eq('name',someTag') 
    } 
} 
관련 문제