本人用的是sg-uap虛擬環境
//查詢方法 //參數 RequestCondition 配合 controller 的 @QueryRequestParam注解可以將前台傳入整個對象進行接收 //參數 UserSession 當前登錄的用戶信息 //obj 實體類 public QueryResultObject query(RequestCondition queryCondition,UserSession userSession){ QueryCriteria qc = new QueryCriteria; //查詢集合 List<obj> result = null; //查詢記錄總數 int count = 0; //查詢條件 qc.addWhere("","數據庫字段名","=","值"); //查詢表 qc.addFrom(obj.class) //其他的判斷條件 if(queryCondition != null){ //添加其他查詢條件 qc = wrapQuery(queryCondition,qc); //獲取總記錄數 count = getRecordCount(qc); //添加分頁信息 qc = wrapPage(queryCondition,qc); result = hibernateDao.findAllByCriteria(qc); }else{ result = hibernateDao.findAllByCriteria(qc); count = getRecordCount(qc); } return 封裝對象返回 } public QueryCriteria wrapQuery(QueryCriteria qc,RequestCondition queryCondition ){ List<QueryFilter> wheres = queryCondition.getQueryFilter(obj.class); if(wheres != null && wheres.size() > 0){ //模糊查詢 for(int i = 0;i<wheres.size();i++){ QueryFilter q = wheres.get(i); if("對象屬性".equals(q.getFieldName)){ //設置此屬性的模糊查詢 q.setOperator("^"); } //排序 qc.addOrder("排序字段","排序規則"); //構造查詢where語句 CrudUtils.addQCWhere(qc,Wheres,Obj.class.getName()); } String orders = queryCondition.getSorter(); //替換分隔符構建排序語句 if(orders != null){ qc.addOrder(Order.replaceAll("&",",")) } return qc; } public QueryCriteria wrapPage(QueryCriteria qc,RequestCondition queryCondition ){ int pageIndex = 1,pageSize = 1; if(queryCondition.getPageIndex() != null&&queryCondition.getPageSize() != null){ pageIndex=queryCondition.getPageIndex(); pageSize=queryCondition.getPageSize(); qc.addPage(pageIndex,pageSize); } return qc; }
一個簡單的模糊+分頁查詢