使用条件编写查询,其中参数是可选的

时间:2015-08-20 14:31:29

标签: hibernate criteria

我想使用Criteria编写一个hibenrate查询,如果填充了参数,则使用其他参数。

例如这张表       地址表     |地址|街|公寓|邮编|     | sadad | 32 | 1 | 64112     | adad | 12 | 4 | 64112

现在让我说我有一个查询,我可以传递所有四行或没有它们。那么有没有办法编写一个查询将检索填充的所有内容。我不想写多个查询来检查请求中填充了哪个参数,然后从表中检索数据

1 个答案:

答案 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();