I found this easy way to do a case insensitive query on the DB using with Criteria. Unfortunately Grails documentation does not mention this, but remember you are using Hibernate. So using .ignoreCase() on the eq works perfectly.
personList = Person.withCriteria {
if (params.firstName)
eq('firstName', params.firstName).ignoreCase()
if (params.lastName)
eq('lastName', params.lastName).ignoreCase()
if (params.login)
eq('login', params.login).ignoreCase()
if (params.personHashId)
like('personHashId', params.personHashId)
maxResults(Constants.SEARCH_MAX_RESULTS)
}