転送します。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を返します。 }
簡単なファジー+ページングクエリ