Grails CreateCriteria Как я могу зациклить ограничения - PullRequest
3 голосов
/ 02 февраля 2012

я могу сделать это:

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
                          }
                        };

но, конечно, это не работает.

1 Ответ

9 голосов
/ 02 февраля 2012

Использование or { }:

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