【发布时间】:2014-03-05 16:09:46
【问题描述】:
我正在尝试将一些用户定义的过滤器添加到查询中。过滤器是 html 列表元素中的属性,我想做的是,如果未选择“全部”,则将条件添加到查询中。到目前为止我尝试过的是
Criteria crit = Person.createCriteria().
addAccountCondition(crit)
addPrimarySkillCondition(crit)
addSkillsetCondition(crit)
addDateCondition(crit)
crit.addOrder(Order.asc("account.name"))
crit.list()
private void addAccountCondition(Criteria query){
String acct = params?.accts?.value?.toString()
if (!acct.equals("all") && acct != null){
query.add(Restrictions.eq("account.name", acct))
// old version
// query = query.where {
// account {
// eq "name", acct
// order "name", "asc"
// }
// }
println "acct is ${acct}"
println "Applying account condition. The query is ${query.toString()}"
}
}
但是,通过这段代码,我试图将一个 groovy Criteria 转换为 Hibernate 标准。我知道如何使用所有这些进行常规查询,但不知道如何动态地进行查询
【问题讨论】:
-
github.com/vahidhedayati/ajaxdependancyselection/blob/master/… 看看这里 - 所有具有域类搜索值等的动态查询都从其他地方传入