Grails标准不区分大小写

Grails标准不区分大小写,grails,gorm,Grails,Gorm,在Grails的子句中有没有一种不区分大小写的 我有这个: "in"("name", filters.tags) 我希望它忽略这个案子。我想我可以做一个sqlRestriction,在(commaSeparatedFilterTags)中做一些类似于UPPER(name)的事情,然后获取筛选标记列表并创建一个以逗号分隔的列表,其中所有标记都是大写的,但我想知道是否有更简单/更好的方法?是的,您可以使用 def commaSeparatedFilterTags = "'name 1','NAME

在Grails的子句中有没有一种不区分大小写的

我有这个:

"in"("name", filters.tags)
我希望它忽略这个案子。我想我可以做一个sqlRestriction,在(commaSeparatedFilterTags)中做一些类似于
UPPER(name)
的事情,然后获取筛选标记列表并创建一个以逗号分隔的列表,其中所有标记都是大写的,但我想知道是否有更简单/更好的方法?

是的,您可以使用

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])
           }
      }
}

我希望这有帮助

如果我有很多数据,循环在CPU方面不是很昂贵还是性能不好?是的,但是当您尝试使用“in”条件时,许多数据库会截断长数据,而且数据库更容易解析。