利用Grails动态规划,我想创建一个逻辑,当没有提供查询参数时,它将列出所有结果,并在提供单个或多个查询参数时仅过滤这些条目。
例如
具有参数名字、姓氏、年龄和地址的域类 A。
def func(){
def c = A.createCriteria()
def results = c.list(){
like('lastName', params.lname)
}
return [results: results]
}
当提供某些查询参数时,此代码返回一些输出。如果未提供查询参数,则它仅返回一个空的结果列表。是否可以在一个函数中完成所有这些操作。
我希望它查找提供的查询参数并相应地过滤结果,如果没有给出查询参数,则返回所有条目。
在
like('lastName'(之前添加if(params.lname(,以便在没有给出查询参数的情况下返回所有条目。
def results = A.createCriteria().list(params){
or{
if(params.lname){
ilike('lastName', '%${params.lname}%')
}
if(params.fname){
eq('firstName', params.fname)
}
}
}