Ofbizプロジェクトベースの学習 - 概要段階 - データを削除

まず、主キーとして削除

	/ ** 
	 *主キーを削除します
	 * @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"オプション= "真" /> 
	</サービス>

  

おすすめ

転載: www.cnblogs.com/gzhcsu/p/11203370.html