我正在检查createCriteria方法here
该语句声明一个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()
是动态方法,由HibernateCriteriaBuilder生成/处理(请参阅source code)
没错,这种语法用于传递闭包,但是当前示例还使用参数作为映射(max: 10, offset: 10
是映射),因此它适用于list(Map params, Closure c)
之类的方法
关于grails - Grails中的createCriteria和列表语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147855/