grails - Grails中的createCriteria和列表语法

标签 grails syntax criteria

我正在检查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/

相关文章:

java - 带有 grails 的 Docx4j。将 HTML 转换为 Word 文档

Nhibernate 标签云查询

grails - 如何使Grails子查询作为简单示例?

grails - 如何通过 createCriteria 中的 desc 进行订单?

grails - 在 Grails URL 中包含名称

Grails 4 和 Views-Json 2 : Build fails

php - 解析错误: syntax error, unexpected T_OBJECT_OPERATOR, expecting ')' [closed]

更新语句中的 MySQL 分号导致语法错误

c++ - bool 运算符,在 C++ 中是否有快捷方式来执行此操作?

javascript - 如何在 Grails 的 js 文件中应用 GString 插值