使用Grails 2.3.0:根据文档:http://grails.org/doc/latest/ref/Domain%20Classes/createCriteria.html
可以使用第三个参数Eq
创建不区分大小写的[ignoreCase: true]
条件。像这样:
eq(field, string, [ignoreCase: true])
然而,这会引发错误:
No signature of method: grails.gorm.DetachedCriteria.eq() is applicable for argument types: (java.lang.String, java.lang.String, java.util.LinkedHashMap) values: [xx, yy, [ignoreCase:true]]
Possible solutions: eq(java.lang.String, java.lang.Object), get(), grep(), any(), ge(java.lang.String, java.lang.Object), gt(java.lang.String, java.lang.Object). Stacktrace follows:
This Jira表示MongoDB存在问题。我正在使用Oracle 11G,我遇到了完全相同的事情。
文档中的操作是否真的得到支持(查看代码,看起来不像......)?这对于DetachedCriterias是否也不起作用(在文档中找不到...)?。
Codesnippet:
public DetachedCriteria createCriteriaForArbejdssted(SoegeCommand command, DetachedCriteria criteria) {
criteria = criteria.build {
if(command.harArbejdsstedskriterier()) {
'arbejdsstedsPerioder' {
'arbejdssted' {
if(command.arbejdsstedsnavn) { eq('navn', command.arbejdsstedsnavn, [ignoreCase: true])}
}
}
}
}