2009-03-16 13 views
8

Sto sviluppando un'applicazione Grails che utilizza la ricerca dei file. Per questo ho scritto il seguente codice. Questo codice funziona e fornisce risultati con distinzione tra maiuscole e minuscole. Ma voglio cercare i file senza distinzione tra maiuscole e minuscole.Ricerca non sensibile alle maiuscole nei graal

def criteria = FileDomain.createCriteria() 
def results = criteria { 
    and { 
     like('user', User.findById(session?.user)) 
     or { 
     like('filename', '%' + params.fileSearchKey + '%') 
     like('referenceFilename', '%' + params.fileSearchKey + '%') 
     } 
     } 
    } 

Qualcuno può fornire assistenza su questo?

risposta

17

Credo utilizzando

ilike('filename', "%${params.fileSearchKey}%") 
ilike('referenceFilename', "%${params.fileSearchKey}%") 

è il modo in cui sono destinati a fare case insensitive ricerche

7

Un modo per fare questo in Grails 2.x è quello di utilizzare the eq node:

eq("branch", "london", [ignoreCase: true]) 
+1

Strano ... Sto ottenendo groovy.lang.MissingMethodException: Nessuna firma del metodo: eq() è applicabile per i tipi di argomenti: (java.lang.String, java.lang.String, java.util.LinkedHashMap) Questo è in Grails 2.5.0. Senza la mappa alla fine, funziona bene. – Dustin

Problemi correlati