Grails标准不区分大小写

时间:2015-06-26 01:33:28

标签: grails gorm

有没有办法在Grails中执行不区分大小写的in子句?

我有这个:

"in"("name", filters.tags)

我希望它忽略大小写。我想我可以做一个sqlRestriction并执行类似UPPER(name) in (commaSeparatedFilterTags)的操作并获取过滤器标签列表并创建一个逗号分隔的列表,它们都是大写的,但是想知道是否有更简单/更好的方法?

1 个答案:

答案 0 :(得分:4)

是的,你可以使用

def commaSeparatedFilterTags = "'name 1','NAME 2','namE 3',...,'name N'"
DomainClass.createCriteria().list{
    sqlRestriction ("upper(name) in (${commaSeparatedFilterTags.toUpperCase()})")
}

或使用循环进入标准

def filterTags=["name 1","NAME 2","namE 3",...,"name N"]
DomainClass.createCriteria().list{
    or{
           filterTags.each{                   
            eq("name",it,[ignoreCase: true])
           }
      }
}

我希望这会有所帮助