grails createCriteria 如何循环限制

标签 grails loops createcriteria

我可以做到这一点:

def criteria = Category.createCriteria();
def results = criteria.list{ 
                          like('categoryName', "%abc%") or
                          like('categoryName', "%qwe%") 

                        };

但是我如何处理未知数量的字符串值? 我想做一些类似的事情:

def results = criteria.list{  
for (str in strList){
like('categoryName', str) or
                          }
                        };

但是这当然行不通。

最佳答案

使用或{}:

def criteria = Category.createCriteria()
def results = criteria.list {
    or {
        strList.each { str ->
            like('categoryName', "%${str}%")
        }
    }
}

关于grails createCriteria 如何循环限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114421/

相关文章:

validation - Grails:尽管有错误,对象仍被保存

python - Pyganim 在 Sidescroller 游戏中的帮助

c# - 如果 C# .NET 出现错误,如何让我的代码跳过某些内容

loops - zsh sleep 辅助循环

grails - 在createCriteria的域对象的collection属性上是否存在 'contains'功能?

Grails - 从 if 和 else 中使用 null 属性创建条件

grails - 在 Grails 中以 DRY 方式动态构建 createCriteria?

hibernate - Grails - 如何在服务中保存域对象?

tomcat - Spring 安全上下文路径解析器

spring - Grails 持久化 Spring 的 "Async"带注释的方法不起作用