QueryCriteriaの作業メモの-hibernate

転送します。https://www.cnblogs.com/jack4738/p/9178394.html

私は、仮想環境SG-UAPを使用しています

コードをコピー
//クエリメソッド
前景オブジェクトが受信される横切っ@QueryRequestParam注釈コントローラと//パラメータRequestConditionを渡すことができ
、現在ログイン//パラメータUserSessionユーザ情報
// OBJエンティティクラス
    パブリックQueryResultObjectクエリ(RequestCondition queryCondition、UserSession UserSession){ 
        
        QueryCriteria QC新しい新しいQueryCriteria =; 
        //クエリのセット
        リスト<OBJ>結果= NULL; 
        //レコードの数の合計照会
        int型のCOUNT = 0; 
        //クエリ
        qc.addWhereを( ""、 "データベースのフィールド名"、 "="、 "値" ); 
        //ルックアップテーブル
        qc.addFrom(obj.class)
        //他の決意条件
        IF(queryCondition = NULL){!
            //別のクエリに追加
            QC = wrapQuery(queryCondition、QC); 
            //レコードの合計数を取得します ;
            カウント= getRecordCount(QC);
            //ページング情報を追加
            、QC = wrapPage(queryCondition、QC)
            の結果= hibernateDao.findAllByCriteria(QC); 
        }他{ 
            結果= hibernateDao.findAllByCriteria(QC); 
            COUNT = GetRecordCount(QC); 
        } 
        戻りエンベロープオブジェクト戻り
    } 
    パブリックQueryCriteriaをwrapQuery(QueryCriteria QC、requestCondition queryCondition){ 

        リスト<QueryFilter>のwheres = queryCondition.getQueryFilter(obj.class); 
        IF(!= NULL &&のwheres wheres.size()> 0){  
            //模糊查询
            のための(int型私= 0;私はwheres.size()<;私は++){ 
                QueryFilter Q = wheres.get(I);
                IF( "オブジェクトプロパティ" .equals(Q .getFieldName)){ 
                    //設定ファジークエリこのプロパティ
                    q.setOperator( "^"); 
                }
                //ソート
                qc.addOrder( "ソートフィールド"、 "照合"); 
                //クエリを構築するステートメント
                CrudUtils.addQCWhere(QC、のwheres、Obj.class.getName()); 
            } 
            文字列= queryCondition.getSorter注文() ; 
            //セパレータを構築ソート文を置き換える
            {IF(受注= nullを!)
                qc.addOrder(Order.replaceAll( "&"、 ""))
            } 
                の戻りQC; 
    } 
        IF( !! queryCondition.getPageIndex()= NULL && queryCondition.getPageSize()= NULL){ 
            pageIndexパラメータqueryCondition.getPageIndex =(); 
            pageSizeをqueryCondition.getPageSize =();
 
    公共QueryCriteria wrapPage(QueryCriteria QC、RequestCondition queryCondition){
        int型pageIndexパラメータ= 1、pageSizeを= 1; 
            qc.addPage(pageIndexパラメータ、pageSizeを)。
        } 
        QCを返します。
    }
コードをコピー

簡単なファジー+ページングクエリ

おすすめ

転載: www.cnblogs.com/sharpest/p/11078614.html