Tho*_*ler 4 grails closures criteria
通常,您在Grails生成的Controller列表方法中有以下最后一行:
[userInstanceList: User.list(params), userInstanceTotal: User.count()]
Run Code Online (Sandbox Code Playgroud)
如果我想按照特定条件限制用户,它看起来像
[userInstanceList: User.list(params) {
ilike('login', '%test%')
}, userInstanceTotal: User.count() {
ilike('login', '%test%')
}]
Run Code Online (Sandbox Code Playgroud)
但这违反了DRY原则 - 重用标准闭包的最佳方法是什么?
小智 6
来自条件构建器的分页结果(结果类是PagedResultList)具有一个属性,totalCount
您可以像调用count()
相同的条件一样使用它:
def userInstanceList = User.createCriteria().list(params) {
ilike 'login', '%test%'
}
[userInstanceList: userInstanceList, userInstanceTotal: userInstanceList.totalCount]
Run Code Online (Sandbox Code Playgroud)