工作筆記—hibernate之QueryCriteria


本人用的是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;
    }

一個簡單的模糊+分頁查詢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM