2009-03-16 54 views
8

Tôi đang phát triển ứng dụng grails sử dụng tính năng tìm kiếm tập tin. Vì vậy, tôi đã viết mã sau đây. Mã này hoạt động và nó mang lại kết quả với phân biệt chữ hoa chữ thường. Nhưng tôi muốn tìm kiếm các tập tin không phân biệt chữ hoa chữ thường.Tìm kiếm phân biệt chữ hoa chữ thường trong grails

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

Có ai có thể trợ giúp về vấn đề này không?

Trả lời

17

Tôi tin rằng sử dụng

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

là cách bạn có nghĩa là để làm case insensitive tìm kiếm

7

Một cách để làm điều này trong Grails 2.x được bằng cách sử dụng the eq node:

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

Strange ... Tôi nhận được groovy.lang.MissingMethodException: Không có chữ ký của phương thức: eq() được áp dụng cho các loại đối số: (java.lang.String, java.lang.String, java.util.LinkedHashMap) Đây là trong Grails 2.5.0. Nếu không có bản đồ ở cuối, nó hoạt động tốt. – Dustin

Các vấn đề liên quan