1

本质上,我有 3 个要检查的字段:

class Book {
   String title
   String ISBN
   String type
}

我正在尝试使用命名查询根据单个搜索字符串对这三个字段中的每一个进行不区分大小写的搜索。这是我目前拥有的:

    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 ?)

我还在命名查询中做了一个断点,以确定字符串是否被传入,并且确实如此。

4

1 回答 1

3

我相信正确的语法是

static namedQueries = {
    search { String searchString ->
        or {
            ilike("title", searchString)
            ilike("ISBN", searchString)
            ilike("type", searchString)
        }
    }
}
于 2012-09-18T20:10:47.680 回答