Ofbiz 프로젝트 기반 학습 - 요약 단계 - 데이터를 삭제

첫째, 기본 키로 제거

	/ ** 
	 * 기본 키를 삭제 
	 파라미터 : dctx 
	 파라미터 : 문맥 
	 * @return 
	 * / 
	공공 정적지도 <문자열, 개체> deleteUomByPrimaryKey ( 
DispatchContext dctx,지도 <문자열, 개체> 컨텍스트) { 
		
		// 인수 엔티티 엔진 인스턴스 
        GenericDelegator = dctx.getDelegator의 위임자 (); 
        
        // 여기에 TODO는 매우 포괄적 인 고려가 아니라도 논의 할 필요가있다 : 1) MiscMap 모드 2) delegator.makePKSingle 방법 
        지도 <문자열, 개체> pkFields = FastMap.newInstance (); 
        pkFields. ( "uomId", "BaseLineProduct을 넣어 //;") 이전 기준 만든 제품을 제거하기 위해 여기    
        GenericPK 기본 키 = delegator.makePK ( "UOM"pkFields을) 
        은 try가 { 
        	// 기본 키 삭제를 수행  
			delegator.removeByPrimaryKey을 (기본 키) ;
		} 캐치 (GenericEntityException 전자) {
			로그 파일에 인쇄 수준 // 넣어 오류 오류 메시지 
			, Debug.logError (E, Module1의) 
			// 지정된 오류 코드에 해당하는 설명 정보는 서비스 호출자에게 반환 
			반환 ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0002, 기본 키. toString ()); 
		} 
		// 다시 발신자에 대한 서비스 정보의 성공을 나타내는 
		반환 ReturnMapUtil.getSuccessMap (); 
	}

둘째, 많은 조건을 제거

	/ ** 
	 * 여러 조건에서 수행하고 삭제 이러한 조건, 삭제 조건이 아닌 기본 키는 일반적으로 '와'관계 
	 파라미터 : dctx 
	 파라미터 : 문맥 
	 * @return 
	 * / 
	공공 정적지도 <문자열, 객체 > deleteUomByOtherFields (DispatchContext dctx,지도 <문자열, 개체> 컨텍스트) { 
		
		// 얻을 실체 엔진 인스턴스 
        GenericDelegator의 위임자 = dctx.getDelegator (); 
        
        // 여기에 TODO는 매우 포괄적 인 고려가 아니라도 논의해야합니다 MiscMap 방법을   
        
        // 여기 앞에 생성 된 현금 관리 정보 시스템을 제거하는    
        <객체, 문자열>지도를 deleteFields = FastMap.newInstance (); 
        deleteFields.put ( "약자 모두", "Cashm"); 
        deleteFields.put ( "설명", "현금 관리 시스템") ;
        {은 try 
        	// 설정 조건에 따라 작업을 삭제  
			"(delegator.removeByAnd을UOM ", deleteFields);
		{캐치 (GenericEntityException 전자)}
			로그 파일에 인쇄 수준 // 넣어 오류 오류 메시지 
			, Debug.logError (E, Module1의) 
			// 지정된 오류 코드에 해당하는 설명 정보는 서비스 호출자에게 반환 
			반환 ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0002, deleteFields. toString ()); 
		} 
		// 다시 발신자에 대한 서비스 정보의 성공을 나타내는 
		반환 ReturnMapUtil.getSuccessMap (); 
	}

셋째, 필드가 다수의 값을 갖는 경우에있어서, 삭제

/ ** 
	 * 값은 복수의 필드에있어서, 삭제할 레코드 
	 * @param dctx 
	 * @param 컨텍스트 
	 * @return 
	 * / 
	공공 정적지도 <문자열 오브젝트> deleteUomByMoreValues (DispatchContext dctx,지도 <문자열 오브젝트> 컨텍스트) { 
		
		/ / 인수 법인 엔진 인스턴스 
        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");
        DeleteCondition = EntityCondition.makeCondition EntityCondition (deleteBLPCon, EntityOperator.OR, deleteCashmCon) 
        은 try { 
        	System.err.println을 ( "삭제 조건 :"+ deleteCondition.toString ()); 
        	// 수행 삭제 조건 설정 
			delegator.removeByCondition ( "UOM", deleteCondition); 
		} 캐치 (GenericEntityException E) { 
			// 오류 수준은 로그 파일에 인쇄 오류 정보를 넣어 
			Debug.logError (E, Module1의); 
			// 오류 코드 기술 정보는 지정된 반환에 해당하는 상기 서비스 호출자에게 
			리턴 ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0002, deleteCondition.toString ()); 
		} 
		받는 사람 정보를 나타내는 성공을 반환 //를 발신자 서비스
		() ReturnMapUtil.getSuccessMap를 리턴; 
	}

넷째, 시간으로 제거

	/ ** 
	 * 데이터의 기간을 삭제 
	 파라미터 : dctx 
	 파라미터 : 문맥 
	 * @return 
	 * / 
	공공 정적지도 <문자열, 개체> deleteUomByDate (DispatchContext dctx,지도 <문자열, 개체> 컨텍스트) { 
		
		// 얻을 실체 예 엔진 
        GenericDelegator 위임자 dctx.getDelegator = () 
        
        의 입력으로부터 추출 된 날짜 및 종료 날짜 매개 변수를 시작 // 
        문자열 beginDateStr = (문자열) context.get (이하 "BEGINDATE") 
        문자열 endDateStr = (문자열) context.get ( "endDate가 "); 
        
        // 설정 쿼리 조건 : 시간을 기록하는 것은 시간을 기록하는 endDate가보다 작은, BEGINDATE보다 더 
        목록 <EntityCondition> conList = FastList.newInstance (); 
        
        들어오는 시작 날짜가 비어 있지 않은 경우, 삭제 기준 설정 // : 삭제 된 레코드를 우리는 시작 날짜보다 이전이 될 수 없습니다 
        (UtilValidate 경우.isNotEmpty (beginDateStr)) { 
        	{시도
        		날짜 문자열 시작 // 먼저 타임 스탬프 포맷으로 변환
        		= UtilDateTime.stringToTimeStamp BEGINDATE 소인 (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) 
			} 캐치 (ParseException가 E) { 
				// 풋 레벨의 에러 정보가 에러 로그 파일에 출력 
				Debug.logError (E, Module1의) 
				; ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0003, beginDateStr, e.getMessage을 ())를 호출 
			} 
        }
        
        수신 종료 날짜가 비어 있지 않은 경우 // 삭제 조건을 제공 : 녹화 종료 날짜를 삭제하지 않는 나중에보다 
        IF (UtilValidate.isNotEmpty (endDateStr)) { 
        	은 try가 { 
        		// 문자열의 일단이 날짜 형식 타임 스탬프로 변환 
        		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는) { 
				// 오류 수준은 로그 파일에 인쇄 오류 정보를 넣어 
				Debug.logError (E, Module1의) 
				ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0004, endDateStr, e.getMessage ()를) 반환; 
        } 
        EntityCondition을 = EntityCondition.makeCondition deleteCondition (conList, EntityOperator.AND) 
        
        은 try { 
        	// 설정 한 조건에 따라 삭제 작업을 
			delegator.removeByCondition ( "UOM", deleteCondition); 
		} 캐치 (GenericEntityException E를) { 
			// 오류 정보를 넣어 로그 파일 레벨로 인쇄 오류 
			Debug.logError (E, Module1의) 
			특정 에러 코드에 대응하는 설명 정보가 상기 서비스 호출자 리턴 // 
			리턴 ReturnMapUtil.getErrorMap (DemoErrorMapping.BASE0002, deleteCondition.toString을 ()) 
		} 
		/ / 호출자에게 다시 서비스 정보의 성공을 나타내는
		() ReturnMapUtil.getSuccessMap를 리턴; 
	}

XML 구성

	<서비스 이름 = "deleteUomByDate"엔진 = "자바" 
		위치 = "com.giantstone.bosent.demo.delegator.DelegatorDeleteDemoService"= "deleteUomByDate"를 호출> 
		<속성 이름 = "BEGINDATE"유형 = "문자열"모드 = "IN" 옵션 = "진정한"/> 
		옵션 = "true"를 "IN"<속성 이름 = "endDate가"유형 = "문자열"모드 = /> 
		<이름 = "반환 코드"유형 = 모드 = "OUT"을 "지도"선택 속성 = "진정한"/> 
	</ 서비스>

  

추천

출처www.cnblogs.com/gzhcsu/p/11203370.html