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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。