grails - 在 Grails Controller 中重用 Criteria

标签 grails closures criteria

通常,Grails 生成的 Controller 列表方法中有以下最后一行:

[userInstanceList: User.list(params), userInstanceTotal: User.count()]

如果我想通过特定标准限制用户,它看起来像

[userInstanceList: User.list(params) {
   ilike('login', '%test%')
 }, userInstanceTotal: User.count() {
   ilike('login', '%test%')
 }]

但这违反了 DRY 原则 - 重用标准闭包的最佳方法是什么?

最佳答案

来自标准生成器的分页结果(结果类为 PagedResultList )有一个属性 totalCount,您可以像调用 count() 一样使用该属性按照相同的标准:

def userInstanceList = User.createCriteria().list(params) {
    ilike 'login', '%test%'
}
[userInstanceList: userInstanceList, userInstanceTotal: userInstanceList.totalCount]

关于grails - 在 Grails Controller 中重用 Criteria,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092857/

相关文章:

swift - Swift 中的完成处理程序

java - 如何正确检查数据库中是否存在行?

parsing - parse_url相当于grails/groovy吗?

grails - 集成测试中的Grails响应图

grails - 谁将参数传递给Grails索引操作

javascript - 在 Javascript 中读取 Synchronos 文件

javascript - 为我的 JS 函数获取 NaN 作为结果。谁能解释为什么?

mongodb - SpringData MongoDB 错误和条件查询,其中同一字段出现两次

java - JPA 标准在所选日期上添加一天

grails question (sample 1 of Grails To Action book) Controller 和服务问题