我有两个(实际上是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 {}”
由于
答案 0 :(得分:4)
getDomainClass
的返回值为GrailsDomainClass
/ DefaultGrailsDomainClass
。调用它的getClazz
方法来获取它包装的类:
def clazz = grailsApplication.getDomainClass(domainClass).clazz
clazz.where { a == b }.list()