2012-09-18 60 views
1

基本上我有3場我要檢查:Grails的namedQueries如何使用或

class Book { 
    String title 
    String ISBN 
    String type 
} 

我試圖使用命名查詢做基於單個不區分大小寫的搜索每個那3場的搜索字符串。以下是我目前有:

static namedQueries = { 

     search { String searchString -> 
     ilike("title", searchString) 
     or { 
      ilike("ISBN", searchString) 
     } 
     or { 
      ilike("type", searchString) 
     } 
    } 

我沒有得到任何異常或任何東西,但是,它根本不返回任何結果的時候,應該有一些。有任何想法嗎?

編輯:

我更新到doelleri的例子,現在運轉。以下是查詢的最後部分:

from book this_ where (lower(this_.title) like ? or lower(this_.isbn) like ? or lower(this_.type) like ?) 

我也在命名查詢內部做了一個斷點,以確定字符串是否傳入並且是。

+1

你可以添加logSql = true在您的數據源配置,並檢查冬眠生成查詢? –

+0

好的 - 我現在正在做 - 會發布結果 –

回答

3

我相信正確的語法是

static namedQueries = { 
    search { String searchString -> 
     or { 
      ilike("title", searchString) 
      ilike("ISBN", searchString) 
      ilike("type", searchString) 
     } 
    } 
}