2012-07-27 6 views
4

나는 (사실 5) 두 개의 도메인 클래스를 ClassA와 ClassB가이 두Grails의 : 함수 인수로 Grails의 도메인 클래스를 전달

ClassA.where { a == b }.list() 

ClassB.where { a == b }.list() 
에서 같은 쿼리를 실행해야

각 클래스에 대한 서비스를 만드는 대신 Class 개체를 전달하는 이러한 쿼리를 실행하는 서비스 클래스를 작성하려고합니다. 나는

def clazz = grailsApplication.getDomainClass(domainClass) 
clazz.where { a == b }.list() 

this solution을 시도하지만 DefaultGrailsDomainClass는 '어디에'방법을 해달라고 말해 예외가 있습니다.

다른 방법이 있습니까? "ClassA.grailsClass.where {}"

감사

답변

4

getDomainClass의 반환 값과 같은이 GrailsDomainClass/DefaultGrailsDomainClass입니다.

def clazz = grailsApplication.getDomainClass(domainClass).clazz 
clazz.where { a == b }.list() 
+0

나는 findall은() 쿼리와 같은 일을 할 노력하고있어,하지만 항상 모든 도메인 개체를 반환은 래핑 클래스를 얻을 수는 getClazz 메서드를 호출합니다. 쿼리는 다음과 같습니다 :''clazz.findAll {prop == value}''이것이 Grails 2.1.1의 버그인지 궁금합니다. – apa64