CriteriaQuery多条件or查询

/ 0条评论 / 0 个点赞 / 1454人阅读
import org.hibernate.criterion.Disjunction;


@RequestMapping(params = "selectdatagrid")
	public void selectdatagrid(TBBdDuEntity tBBdDu,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
		CriteriaQuery cq = new CriteriaQuery(TBBdDuEntity.class, dataGrid);
		//查询条件组装器
//		com.centusoft.framework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tBBdDu, request.getParameterMap());
		try{
		//自定义追加查询条件
		String unitCode = oConvertUtils.getString(request.getParameter("unitCode"));
		String address = oConvertUtils.getString(request.getParameter("address"));
		String businessType_ = oConvertUtils.getString(request.getParameter("businessType"));
		//String qualificationType_ = oConvertUtils.getString(request.getParameter("qualificationType"));
		
		String culType2 = oConvertUtils.getString(request.getParameter("culType2"));
		
		if(StringUtil.isNotEmpty(unitCode)){
			cq.like("unitCode", "%"+unitCode+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getUnitName())){
			cq.like("unitName", "%"+tBBdDu.getUnitName()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getContacts())){
			cq.like("contacts", "%"+tBBdDu.getContacts()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getTelNumber())){
			cq.like("telNumber", "%"+tBBdDu.getTelNumber()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getProvince())){
			cq.in("province", tBBdDu.getProvince().split("\\,"));
		}
		if(StringUtil.isNotEmpty(address)){
			cq.like("address", "%"+address+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getQualificationType())){
			cq.like("qualificationType", "%"+tBBdDu.getQualificationType()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getQualificationGrade())){
			cq.like("qualificationGrade", "%"+tBBdDu.getQualificationGrade()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getPeriodOfValidity())){
			cq.like("periodOfValidity", "%"+tBBdDu.getPeriodOfValidity()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getZipCode())){
			cq.like("zipCode", "%"+tBBdDu.getZipCode()+"%");
		}
		if(StringUtil.isNotEmpty(tBBdDu.getCreateName())){
			cq.like("createName", "%"+tBBdDu.getCreateName()+"%");
		}
		if(StringUtil.isNotEmpty(businessType_)){
			cq.like("businessType", "%"+businessType_+"%");
		}
		//资质类型、资质等级、资质有效期如果有空值则不能选择
		if(!"CRR".equals(businessType_)){
			cq.isNotNull("qualificationType");
			cq.isNotNull("qualificationGrade");
			cq.isNotNull("periodOfValidity");
		}

		}catch (Exception e) {
			throw new BusinessException(e.getMessage());
		}
		String culType = oConvertUtils.getString(request.getParameter("culType"));
		if(StringUtil.isNotEmpty(culType)){
			String[] culType_ = culType.split("\\,");




---------------------------------------------------------------------------------
//Disjunction  多条件or查询
//Conjunction  多条件and查询
			 Disjunction disjunction = Restrictions.disjunction();
			for(int i=0;i<culType_.length;i++){
				disjunction.add(Restrictions.like("culType", "%"+culType_[i]+"%").ignoreCase());  
			}
			cq.add(disjunction);  

---------------------------------------------------------------------------------



		}
		cq.add();
                
		this.tBBdDuService.getDataGridReturn(cq, true);
		TagUtil.datagrid(response, dataGrid);
	}

CriteriaQuery多条件or查询