我想使用Criteria编写一个hibenrate查询,如果填充了参数,则使用其他参数。
例如这张表 地址表 |地址|街|公寓|邮编| | sadad | 32 | 1 | 64112 | adad | 12 | 4 | 64112
现在让我说我有一个查询,我可以传递所有四行或没有它们。那么有没有办法编写一个查询将检索填充的所有内容。我不想写多个查询来检查请求中填充了哪个参数,然后从表中检索数据
答案 0 :(得分:0)
为什么不能简单地检查参数中的值是否为空,然后将其添加到限制。例如:
Criteria cr = session.createCriteria(Address.class);
if(address != null){
cr.add(Restrictions.eq("address ", address ));
}
if(street!= null){
cr.add(Restrictions.eq("street", street));
}
if(apt != null){
cr.add(Restrictions.eq("apt ", apt ));
}
if(zip != null){
cr.add(Restrictions.eq("zip ", zip ));
}
List results = cr.list();