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

Write Query Using Criteria where parameters are optional

我想使用 Criteria 编写一个 hibenrate 查询,如果填充了一个参数,它就会使用该参数,否则不会。

比如这个table 地址 Table |地址|街道|公寓|邮编| |悲伤| 32 |1 |64112 |adad |12 |4 |64112

现在假设我有一个查询,我可以在其中传递所有四行或其中的 none。那么有没有一种方法可以编写一个查询来检索所有内容 populated.I 不想编写多个查询来检查请求中填充了哪个参数,然后从 tables

检索数据

为什么你不能简单地检查参数中的值是否不为空,然后将其添加到限制中。例如:

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