Grails:将Grails领域类作为函数参数传递

4

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

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

and

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

我希望编写一个服务类来执行这些查询,而不是为每个类创建一个服务。我尝试了这个解决方案

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

但是我收到了一个异常,告诉我DefaultGrailsDomainClass没有'where'方法。

有没有其他方法来实现这个功能?类似于“ClassA.grailsClass.where {}”

谢谢

1个回答

4
< p > < code > getDomainClass 的返回值是 < code > GrailsDomainClass / < code > DefaultGrailsDomainClass 。调用其 < code > getClazz 方法以获取它封装的类:

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

我正在尝试使用findAll()查询做同样的事情,但它总是返回所有域对象。查询如下:clazz.findAll { prop == value } 我想知道这是否是Grails 2.1.1中的一个错误? - apa64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接