0

使用 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:

这个 Jira说明了 MongoDB 的一个问题。我正在使用 Oracle 11G,我遇到了完全相同的事情。

文档中的操作是否真的完全支持(翻看代码,好像不是……)?这是否也不适用于 DetachedCriterias(在文档中找不到其他内容......)?

代码片段:

public DetachedCriteria createCriteriaForArbejdssted(SoegeCommand command, DetachedCriteria criteria) {
    criteria = criteria.build {
        if(command.harArbejdsstedskriterier()) {
            'arbejdsstedsPerioder' {
                'arbejdssted' {
                    if(command.arbejdsstedsnavn) { eq('navn', command.arbejdsstedsnavn, [ignoreCase: true])}
                }
            }
        }
    }
4

0 回答 0