我只用了一个新的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。