我正在检查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%")
}
是一个带有两个参数和闭包的列表方法吗?
答案 0 :(得分:1)
这个list()
是动态方法,由HibernateCriteriaBuilder生成/处理(参见source code)
你是对的,这个语法用于传递一个闭包,但是当前的例子也使用参数作为一个地图(max: 10, offset: 10
是一个地图),所以这是一个类似list(Map params, Closure c)
的方法
答案 1 :(得分:0)
你不必担心list(),它是一个动态方法,你只是假设它存在。
下面是一个包含分页信息的查询 - 表示返回最多10条记录,以偏移量10开头,其中holderFirstName就像Fred%
def results = c.list (max: 10, offset: 10) {
like("holderFirstName", "Fred%")
}