首页 > 代码库 > Hibernate下多个Restrictions.or的解决方案

Hibernate下多个Restrictions.or的解决方案

近日用Hibernate做项目遇到一个问题:用DetachedCriteria动态查询时,查询条件存在多个or。

通常情况下使用Restrictions.or()即可解决,但如果or的个数不确定呢?

解决方案:使用org.hibernate.criterion.Criterion

代码如下:

DetachedCriteria criteria = xxDao.createDc();Criterion criterion = null;criterion = Restrictions.in("id", "");//第一个查询条件for(int i = 1; i < length ; i++){  criterion = Restrictions.or(criterion, Restrictions.in("id", ""));//第N+个查询条件}
if(criterion != null){
  criteria.add(criterion);//这里会自动拼接成N个or
}
xxDao.find(criteria);

 

Hibernate下多个Restrictions.or的解决方案