Grails中的createCriteria和list语法

Grails中的createCriteria和list语法,grails,syntax,criteria,Grails,Syntax,Criteria,我正在检查createCriteria方法 此语句声明一个HibernateCriteriaBuilder对象 def c = Account.createCriteria() 然后它会呼叫 def results = c.list { like("holderFirstName", "Fred%") and { between("balance", 500, 1000) eq("branch", "London") } } 但是,从api来看,HibernateCri

我正在检查createCriteria方法

此语句声明一个HibernateCriteriaBuilder对象

def c = Account.createCriteria()
然后它会呼叫

def results = c.list {
 like("holderFirstName", "Fred%")
 and {
    between("balance", 500, 1000)
    eq("branch", "London")
 }
}
但是,从api来看,HibernateCriteriaBuilder没有任何list()方法。我错过什么了吗

另外,有人能给我解释一下以下更复杂的语法吗

def results = c.list (max: 10, offset: 10) {
   like("holderFirstName", "Fred%")
}

它是一个包含两个参数和一个闭包的列表方法吗???

您不必担心list(),它是一个动态方法,您只需假设它存在

下面是一个带有分页信息的查询-表示返回最多10条记录,从偏移量10开始,其中holderFirstName类似于Fred%

def results = c.list (max: 10, offset: 10) {
  like("holderFirstName", "Fred%")
}
list()
是动态方法,由HibernateCriteriaBuilder生成/处理(请参阅)

您是对的,此语法用于传递闭包,但当前示例还使用参数作为映射(
max:10,offset:10
是一个映射),因此它适用于类似
list(map params,closure c)的方法