2012-02-05 76 views
0
语法

我检查个createCriteria方法here个createCriteria和列表Grails中

这个语句声明了一个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

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

下面是与寻呼信息的查询 - ,说返回最大10个记录开始偏移10,其中holderFirstName就像佛瑞德%

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

list()是动态的方法,生成/ HibernateCriteriaBuilder处理(见source code

而且你说的没错,这个语法是通过一个封闭,但目前的示例还使用参数映射(max: 10, offset: 10是地图),所以它像list(Map params, Closure c)

的方法