Grails Where Queries:在方法中展开DetachedCriteria不起作用

时间:2014-07-11 15:24:36

标签: grails gorm where composition detachedcriteria

我只用了一个新的Grails项目:

TestDomain.class:

class TestDomain {

    String var1
    String var2

}

BootStrap.groovy中:

def init = { servletContext ->
    if (TestDomain.count() == 0) {
        new TestDomain(var1: "a", var2: "b").save()
        new TestDomain(var1: "a", var2: "c").save() 
    }
}

TestController.groovy:

def index() {
    def detachedCriteria = TestDomain.where { var1 == "a" }
    detachedCriteria = detachedCriteria.where { var2 == "b" }
    render detachedCriteria.list()
}


def indexWithMethod() {
    def detachedCriteria = TestDomain.where { var1 == "a" }
    detachedCriteria = addClause(detachedCriteria)
    render detachedCriteria.list()
}

def addClause(detachedCriteria) {
    detachedCriteria = detachedCriteria.where { var2 == "b" }
    return detachedCriteria
}

调用索引只返回1个实例(如预期的那样),但indexWithMethod返回两个实例元素。为什么indexWithMethod不等于索引?

我使用的是Grails 2.4.2,但这也发生在2.3.6。

1 个答案:

答案 0 :(得分:0)