我们在grails应用程序上有一个搜索页面。此页面需要能够基于许多属性动态构建查询。
例如:
如果这是一个Java应用程序,我会使用hibernate标准API。标准API的一个问题是它使得任意连接成为不可能。
那么有没有办法动态构建这样的查询?如果可以动态修改GORM中的标准API,或者我可以使用完全不同的方法。
答案 0 :(得分:2)
def user = User.createCriteria().list{
if(params.email != null){
or{
eq('email', params.email)
iLike('email', "%${params.email}%")
}
} else if(params.id != null){
idEq(params.id)
} else if(params.name != null){
eq('name', params.name)
} else if(params.memberOf != null){ //This can be optimized
groups{
eq('name', params.memberOf)
}
}
}
这是你在找什么?