grails:将grails域类作为函数参数传递

时间:2012-07-27 15:15:24

标签: grails grails-domain-class

我有两个(实际上是5个)域类,ClassA和ClassB,并且必须在两个域上执行相同的查询

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

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

我想编写一个服务类来执行这些传递Class对象的查询,而不是为每个类创建服务。我试过了this solution

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

但我有一个例外,告诉我DefaultGrailsDomainClass没有'where'方法。

还有其他办法吗?类似“ClassA.grailsClass.where {}”

由于

1 个答案:

答案 0 :(得分:4)

getDomainClass的返回值为GrailsDomainClass / DefaultGrailsDomainClass。调用它的getClazz方法来获取它包装的类:

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