我需要根据各种标准进行搜索。
我有以下代码,但它不起作用。这段代码有多糟糕?
def taskList = Object.createCriteria().list(params) {
if (params.query) {
ilike("name", "%${params.query}%")
}
if (params.nameList) {
params.nameList.split("&").each {
or {
ilike("name", "%${it}$%")
}
}
}
用例2&的结果为空。我做错了什么?我该怎么办?
干杯
答案 0 :(得分:0)
我将in
运算符用于3. case
list{
or{
if( params.query ) ilike "name", "%${params.query}%"
if( params.nameList ) 'in' 'name', params.nameList.split("&")
}
}
答案 1 :(得分:0)
def taskList = Object.createCriteria().list(params) {
def names = []
if(params.nameList){
names = nameList.split("&")
}
or{
if (params.query){ilike("name", "%${params.query}%")}
and{
if (params.query){ilike("name", "%${params.query}%")}
if(names){'in'('name', names)}
}
if (names) {
names.each {name->
or {
ilike("name", "%$name$%")
}
}
}
}
}
未经测试,但您可以尝试使用上述功能吗?我宁愿选择HQL来实现您的需求。