hibernate多个查询or的用法

项目是hibernate加springMVC


package com.iujin.web.uadpt.controller.admin;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.hibernate.criterion.Restrictions;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.exception.BusinessException;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ModelAndView;

import com.iujin.web.uadpt.entity.admin.UadptTacActDataEntity;
import com.iujin.web.uadpt.service.admin.UadptTacActDataServiceI;

@Controller
@RequestMapping("/uadptTacActDataController")
public class UadptTacActDataController extends BaseController {

		@SuppressWarnings("unused")
		private static final Logger logger = Logger.getLogger(UadptTacActDataController.class);

		@Autowired
		private UadptTacActDataServiceI uadptTacActDataService;

		@Autowired
		private SystemService systemService;
		
		private String message;
		
		/**
		 * 给报表导数据
		 * 
		 * @return
		 */
		@RequestMapping(params = "uadptTacActData")
		public ModelAndView uadptTacActData(HttpServletRequest request) {
			return new ModelAndView("uadpt/admin/UadptTacActDataList");
		}
		
		
		/**
		 * easyui AJAX请求数据
		 * 
		 * @param request
		 * @param response
		 * @param datagrid
		 * @param user
		 */

		@RequestMapping(params = "datagrid")
		public void datagrid(UadptTacActDataEntity uadptTacActData,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
			CriteriaQuery cq = new CriteriaQuery(UadptTacActDataEntity.class, dataGrid);
			//查询条件组装器
			org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, uadptTacActData, request.getParameterMap());
			try{
			//自定义追加查询条件
			}catch (Exception e) {
				throw new BusinessException(e.getMessage());
			}
			cq.add();
			this.uadptTacActDataService.getDataGridReturn(cq, true);
			TagUtil.datagrid(response, dataGrid);
		}
		
		/**
		 * 导入页面跳转
		 * 
		 * @return
		 */
		@RequestMapping(params = "goUpload")
		public ModelAndView goUpload(HttpServletRequest request) {
			return new ModelAndView("uadpt/admin/importDate-upload");
		}
		
		/**
		 * 导入Form(采用SQL方式)
		 * 
		 * @param ids
		 * @return
		 * @throws Exception 
		 */
		@RequestMapping(params = "doUpload")
		@ResponseBody
		public AjaxJson doUpload(UadptTacActDataEntity uadptTacActData, HttpServletRequest request) throws Exception{

			AjaxJson j = new AjaxJson();
			//创建一个通用的多部分解析器. 
			CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); 
			//设置编码  
			multipartResolver.setDefaultEncoding("utf-8");
			if(multipartResolver.isMultipart(request)){
				MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;	
				//取得request中的所有文件名  
	            Iterator<String> iter = multiRequest.getFileNames();
	            while(iter.hasNext()){  
	                //取得上传文件  
	                MultipartFile file = multiRequest.getFile(iter.next());
	                //创建临时文件  
	            	File f = new File("c:\\filemgr_ugda02");
	            	File fTemp = File.createTempFile("phonenum", ".csv", f);
	            	FileInputStream In = new FileInputStream(fTemp);
	            	FileOutputStream fos = new FileOutputStream("c:\\filemgr_ugda02\\phonenum.txt");
	            	//利用字节流把内容写入文件
	            	byte[] buffer1=file.getBytes();
	            	fos.write(buffer1);
	            	In.close();
	            	fos.close();
	            	fTemp.delete();
	            	//执行sql load文件   request.getRealPath("/")
	            	String  commandText= "cmd /c start c:/filemgr_ugda02/exec.bat ";
	            	Runtime runtime=Runtime.getRuntime();
	            	runtime.exec(commandText);
	            	message = "号码导入成功";
	            }
			}
			j.setMsg(message);
			return j;
		}
		
		/**
		 * 转化
		 */
		@RequestMapping(params = "dataChange")
		@ResponseBody
		public AjaxJson dataChange(UadptTacActDataEntity uadptTacActData, HttpServletRequest request) {
			AjaxJson j = new AjaxJson();
			if(!uadptTacActDataService.change()){
				message = "转化失败";
				j.setMsg(message);
				j.setSuccess(false);
				return j;
			}
			message = "转化成功";
			systemService.addLog(message, Globals.Log_Type_INSERT,Globals.Log_Leavel_INFO);
			j.setMsg(message);
			return j;
		}
		
		/**
		 * 检验
		 */
		@RequestMapping(params = "dataCheck")
		@ResponseBody
		public AjaxJson dataCheck(UadptTacActDataEntity uadptTacActData, HttpServletRequest request) {
			AjaxJson j = new AjaxJson();
			uadptTacActDataService.check();
			String pama=uadptTacActDataService.checkerror();
			j.setObj(pama);
			if("0".equals(pama)){
				message = "检验成功";
				j.setMsg(message);
				j.setSuccess(false);
				return j;
			}
			message = "检验失败,共有"+pama+"条错误数据";
			systemService.addLog(message, Globals.Log_Type_INSERT,Globals.Log_Leavel_INFO);
			j.setMsg(message);
			return j;
		}

		/**
		 * 同步
		 */
		@RequestMapping(params = "dataSync")
		@ResponseBody
		public AjaxJson dataSync(UadptTacActDataEntity uadptTacActData, HttpServletRequest request) {
			AjaxJson j = new AjaxJson();
			uadptTacActDataService.check();
			String pama=uadptTacActDataService.checkerror();
			if("0".equals(pama)){
				uadptTacActDataService.deltarg();
				uadptTacActDataService.sync();
				message = "同步成功";
				j.setMsg(message);
				j.setSuccess(false);
				return j;
			}
			message = "数据存在问题,不能同步";
			systemService.addLog(message, Globals.Log_Type_INSERT,Globals.Log_Leavel_INFO);
			j.setMsg(message);
			return j;
		}
		
		/**
		 * 错误列表页面跳转
		 * 
		 * @return
		 */
		@RequestMapping(params = "goErrorData")
		public ModelAndView goErrorData(HttpServletRequest request) {
			return new ModelAndView("uadpt/admin/errorDataList");
		}
		
		/**
		 * easyui AJAX请求数据
		 * 
		 * @param request
		 * @param response
		 * @param datagrid
		 * @param user
		 */

		@RequestMapping(params = "datagridError")
		public void datagridError(UadptTacActDataEntity uadptTacActData,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
			CriteriaQuery cq = new CriteriaQuery(UadptTacActDataEntity.class, dataGrid);
			//查询条件组装器
			org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, uadptTacActData, request.getParameterMap());
			try{
			<span style="color:#FF0000;"><strong>//自定义追加查询条件  状态为0,执行效率比不等于1高,此处用的是hibernate </strong></span><pre name="code" class="java"><span style="color:#FF0000;"><strong>Restrictions.or 的用法,其中</strong></span><pre name="code" class="java"><span style="color:#FF0000;"><strong>statusTac...是实体类的属性</strong></span>


cq.add(Restrictions.or(Restrictions.eq("statusTac", 0),Restrictions.eq("statusTerminal", 0),Restrictions.eq("statusBrand", 0),Restrictions.eq("statusModel", 0),Restrictions.eq("statusCmType", 0),Restrictions.eq("statusDual", 0),Restrictions.eq("statusSoftLock", 0),Restrictions.eq("statusNettypeUni", 0),Restrictions.eq("statusNettypeOth", 0)));}catch (Exception e) {throw new BusinessException(e.getMessage());}cq.add();this.uadptTacActDataService.getDataGridReturn(cq, true);TagUtil.datagrid(response, dataGrid);}}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章