使用条件编写查询,其中参数是可选的
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();
我想使用 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();