本质上,我有3个字段要检查:
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 ?)
我还在命名查询中做了一个断点,以确定是否传入了字符串,确实如此。
最佳答案
我相信正确的语法是
static namedQueries = {
search { String searchString ->
or {
ilike("title", searchString)
ilike("ISBN", searchString)
ilike("type", searchString)
}
}
}
关于grails - grails namedQueries如何使用OR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12482986/