첫째, 기본 키로 제거
/ ** * 기본 키를 삭제 파라미터 : 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"을 "지도"선택 속성 = "진정한"/> </ 서비스>