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


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