在Grails中动态生成SQL查询
我们在grails应用程序上有一个搜索页面。此页面需要能够基于多个属性动态生成查询 例如:在Grails中动态生成SQL查询,sql,grails,gorm,dynamic-queries,Sql,Grails,Gorm,Dynamic Queries,我们在grails应用程序上有一个搜索页面。此页面需要能够基于多个属性动态生成查询 例如: “查找像bob.smith@%这样的电子邮件用户” “找到与电子邮件相同的用户”john。smith@gmail.com" “查找属于组x成员的用户” “查找id为42的用户” 查找名为“Jason P%”的用户 如果这是一个Java应用程序,我将使用hibernate标准API。criteria API的一个问题是它使任意连接变得不可能 那么,有没有一种方法可以像这样动态构建查询?如果GORM中的c
- “查找像bob.smith@%这样的电子邮件用户”
- “找到与电子邮件相同的用户”john。smith@gmail.com"
- “查找属于组x成员的用户”
- “查找id为42的用户”
- 查找名为“Jason P%”的用户
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)
}
}
}
这就是您要找的吗?我怎样才能动态地将其他实体/表加入到该查询中?@Benju我已经这样做了,假设
组
与用户关联。如果您显示一些要进行采样的域,将非常方便。:)