在一个gorm域类中,我可以做
def q = {
property1{
eq('attr', 0)
}
}
MyDomainClass.list(q)
如何在运行时修改闭包“q”(或创建一个包含闭包“q”具有的限制的新闭包),例如我可以添加另一个属性限制?
更多细节
实际上我的问题是如何在域类层次结构中创建组合标准。
class Parent{
int pAttr
static def getCriteria(){
def dummyParentCriteria = {
eq('pAttr', 0)
}
}
}
class Child extends Parent{
int cAttr
static def getCriteria(){
def dummyChildCriteria = {
// (1)
eq('cAttr', 0)
}
}
}
在“dummyChildCriteria”中,我想避免重复父母的限制。
我想以某种方式结合 Parent 的 getCriteria 的结果 (1)
具有命名查询继承的解决方案
class Parent{
int pAttr
static namedQueries = {
parentCriteria{
eq('pAttr', 0)
}
}
}
class Child extends Parent {
int cAttr
static namedQueries = {
childCriteria{
parentCriteria()
eq('cAttr', 0)
}
}
}
但是,如果有人知道最初问题的答案,那就太好了!