まず、主キーとして削除
/ ** *主キーを削除します * @param DCTX * @paramコンテキスト * @return * / パブリック静的地図<文字列、オブジェクト> deleteUomByPrimaryKey( DispatchContext DCTX、地図<文字列、オブジェクト>コンテキスト){ //取得したエンティティエンジンインスタンス GenericDelegator = dctx.getDelegatorの委任(); //ここでのTODOは非常に総合的に考慮ではなく、また議論する必要があります:1)MiscMapモード2)delegator.makePKSingle方法 地図<文字列、オブジェクト> pkFields = FastMap.newInstance(); pkFields。 ( "uomId"、 "BaseLineProductを置く "); // ここでは、以前のベースラインの作成製品削除する GenericPK PRIMARYKEY = delegator.makePK( "UOM"、pkFieldsを); 試み{ //主キーの削除を実行 delegator.removeByPrimaryKeyを(主キー) ; キャッチ(GenericEntityException eを)} { ログファイルへの印刷レベルに//置くエラーエラーメッセージ Debug.logError(E、Module1の); 指定されたエラーコードに対応する//記述情報は、発信者がサービスに戻っ ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0002、主キーを返します。 toString()); } //バック発信者へのサービス情報の成功を示す リターンReturnMapUtil.getSuccessMap(); }
第二に、できるだけ多くの条件を削除します
/ ** *は、複数の条件で行われ、およびDeleteこれらの条件、削除条件は、非プライマリキーがある一般的に「との」関係 * @param DCTX * @paramコンテキスト * @return * / パブリック静的地図<文字列、オブジェクト> deleteUomByOtherFields(DispatchContext DCTX、地図<文字列、オブジェクト>コンテキスト){ //エンティティエンジンのインスタンスを取得 GenericDelegator委任者= dctx.getDelegator(); //ここにTODOは非常に総合的に考慮ではなく、また議論する必要があります。MiscMap道 //ここの前に作成された現金管理情報システム削除するには 、<オブジェクト、文字列>地図をdeleteFields = FastMap.newInstance(); deleteFields.put(「略語の両方」、「Cashm」); deleteFields.put(「説明」、「キャッシュ・マネジメント・システム」) ; {試み //は、設定された条件に応じた動作を削除 delegator.removeByAndを( "UOM」、deleteFields)。 キャッチ(GenericEntityException電子){} ログファイルへの印刷レベルに//置くエラーエラーメッセージ ; Debug.logError(E、Module1の) //指定されたエラーコードに対応する説明情報は、サービス呼び出し元に返される リターンReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0002、deleteFields。 toString()); } //バック発信者へのサービス情報の成功を示す リターンReturnMapUtil.getSuccessMap(); }
第三に、フィールドは複数の値を持つ場合、削除するに従って、
/ ** *値は、複数のフィールドに応じて、削除するレコード * @param DCTX * @paramコンテキスト * @return * / パブリック静的地図の<string、オブジェクト> deleteUomByMoreValues(DispatchContext DCTX、地図の<string、オブジェクト>コンテキスト){ / /エンティティエンジンのインスタンスを取得し GenericDelegator委任者= dctx.getDelegator(); //ここでは、「ベースラインの製品情報」を削除し、以前に作成した「資金管理情報システム」に 地図<文字列、オブジェクト> deleteFields = FastMap.newInstance(); deleteFields.put ( "両方とも略称"、 "BLP"); deleteFields.put( "両方とも略称"、 "Cashm"); //が収集条件を削除 EntityCondition deleteBLPCon = EntityCondition.makeCondition( "略" 、EntityOperator.EQUALS、 "BLP")。 EntityCondition deleteCashmCon = EntityCondition.makeCondition( "略" 、EntityOperator.EQUALS、 "Cashm"); EntityCondition deleteCondition = EntityCondition.makeCondition(deleteBLPCon、EntityOperator.OR、deleteCashmCon); 試み{ System.err.println( "削除条件:" + deleteCondition.toStringは()); //設定削除条件を実行 delegator.removeByCondition(「UOM」、deleteCondition); }キャッチ(GenericEntityException Eを){ //エラーレベルは、ログファイルに印刷エラー情報を入れて デバッグ.logError(E、Module1の); //指定されたエラーコードに対応する記述情報は、発信者がサービスに返さ ReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0002、deleteCondition.toString())を返す; } に成功したことを示す情報を返す//発信者サービス ReturnMapUtil.getSuccessMapを返します(); }
第四に、時間として削除
/ ** *データの期間を削除します * @param DCTX * @paramコンテキスト * @return * / パブリック静的地図<文字列、オブジェクト> deleteUomByDate(DispatchContext DCTX、地図<文字列、オブジェクト>コンテキスト){ //取得するエンティティ例エンジン GenericDelegator委任dctx.getDelegator =(); 入力から抽出された日と終了日のパラメータを開始// 文字列beginDateStr =(文字列)context.get( "BEGINDATE"); 文字列endDateStr =(文字列)context.get(「endDateに「); //セットクエリ条件:時間を記録することは、時間を記録することはendDateに満たない、BEGINDATE以上で 一覧<EntityCondition> CONLIST = FastList.newInstance(); の着信開始日が空でない場合は、削除基準を設定//:削除されたレコードを開始日より前にすることはできません (UtilValidate場合。isNotEmpty(beginDateStr)){ {みてください 日付文字列を開始//最初のフォーマットのタイムスタンプに変換する タイムスタンプBEGINDATE = UtilDateTime.stringToTimeStamp(beginDateStr、InnerConstant.DATE_FORMAT、はTimeZone.getDefault()、Locale.CHINA); 全日付の//時間、次いで00に設定されています。 00:00.000 BEGINDATE = UtilDateTime.getDayStart(BEGINDATE); //検索条件を設定:記録時間はBEGINDATEより大きい EntityCondition startDateCon = EntityCondition.makeCondition( "createdStamp"、EntityOperator.GREATER_THAN_EQUAL_TO、BEGINDATE); conList.add(startDateCon); }キャッチ( EはParseException){ ログファイルに印刷エラー情報を入れる//エラーレベル Debug.logError(E、Module1の); 戻りReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0003、beginDateStr、e.getMessage()); } } //着信終了日が空でない場合、削除条件が提供される録画終了日時は、後でよりない削除 IF(UtilValidate.isNotEmpty(endDateStr)){ 試み{ 文字列の//最初の端部は、日付形式のタイムスタンプに変換されます endDateに= UtilDateTime.stringToTimeStampタイムスタンプ(endDateStr、InnerConstant.DATE_FORMAT、はTimeZone.getDefault()、Locale.CHINA); System.err.println(endDate.toString()); 次に、終了日に設定された時間部分//:23 :59:59.999 endDateに= UtilDateTime.getDayEnd(UtilDateTime.nowTimestamp()); //検索条件を設定:記録時間はendDateに未満である EntityCondition endTimeCon = EntityCondition.makeCondition( "createdStamp"、EntityOperator.LESS_THAN_EQUAL_TO、endDateに); conList.add( endTimeCon); }キャッチ(はParseException E){ ログファイルに印刷エラー情報を入れる//エラーレベル デバッグ。 logError(E、Module1の); (DemoErrorMapping.BASE0004、endDateStr、e.getMessage())ReturnMapUtil.getErrorMapを返します; } } EntityCondition deleteCondition = EntityCondition.makeCondition(CONLIST、EntityOperator.AND); 試み{ //設定された条件に従って、削除操作 delegator.removeByCondition( "UOM"、deleteCondition); }キャッチ(GenericEntityException E){ //置くエラーエラー情報は、ログファイルレベルに出力され 、Debug.logError(E、Module1の) //サービスに対応する指定されたエラーコード記述情報は、発信者に返される 戻りReturnMapUtil.getErrorMap(DemoErrorMapping.BASE0002、deleteCondition.toString() )。 } / /呼び出し元にサービス情報の成功を示します ReturnMapUtil.getSuccessMapを返します(); }
XML設定
<サービス名= "deleteUomByDate"エンジン= "javaの" 場所は= "com.giantstone.bosent.demo.delegator.DelegatorDeleteDemoService" = "deleteUomByDate"を起動> <属性名= "BEGINDATE"タイプ= "文字列"モード= "IN"オプション= "真" /> <オプション= "真" /> "の"名前= "endDateに"タイプ= "文字列"モード=属性 <属性名= "RETURNCODE"タイプ= "マップ"モード= "OUT"オプション= "真" /> </サービス>