3
Oracle에는 12 개의 매개 변수와 3 개의 선택적 매개 변수가있는 프로 시저가 있습니다. Spring 3.1.0에서 StoredProcedure 객체를 사용하고 있다면 이러한 선택적 매개 변수를 어떻게 설명 할 수 있습니까? 여기 Spring StoredProcedure 선택적 매개 변수
이 가진 문제는 내가 12 개 매개 변수를 공급하고있어 시작 및 종료 날짜가 null의 경우, 지금은 10을 공급하고있어 것입니다 내의 StoredProcedure 클래스public Map<String, Object> execute(Evaluation evaluation) {
Map<String, Object> input_params = new HashMap<String, Object>();
input_params.put(COURSE_MAIN_PK1_INPUT_PARAM, evaluation.getCourseId());
input_params.put(USERS_PK1_INPUT_PARAM, evaluation.getUsersPk1());
input_params.put(ACCREDITATION_PK1_INPUT_PARAM, evaluation.getAccreditationPk1());
input_params.put(TYPE_PK1_INPUT_PARAM, evaluation.getTypePk1());
input_params.put(PRIVACY_TYPE_PK1_INPUT_PARAM, evaluation.getPrivacyTypePk1());
input_params.put(FORM_TYPE_PK1_INPUT_PARAM, evaluation.getFormTypePk1());
input_params.put(TITLE_INPUT_PARAM, evaluation.getTitle());
input_params.put(DESCRIPTION_INPUT_PARAM, evaluation.getDescription());
if(evaluation.getStartDate() != null) {
input_params.put(START_DATE_INPUT_PARAM, new java.sql.Date(evaluation.getStartDate().getMillis()));
}
if(evaluation.getEndDate() != null) {
input_params.put(END_DATE_INPUT_PARAM, new java.sql.Date(evaluation.getEndDate().getMillis()));
}
input_params.put(SAVE_TO_GRADECENTER_INPUT_PARAM, evaluation.getGradeCenterColumn());
input_params.put(CREATE_ANNOUNCEMENT_INPUT_PARAM, evaluation.getAnnouncement());
return super.execute(input_params);
}
을 지금까지 가지고 무엇을 예외가 생겼다.
데이터베이스의 날짜 기본값은 null
입니다.
'Map'에는'null' 값이 포함될 수 있기 때문에 항상 startDate 및 endDate 키를 맵에 추가하고 날짜가 null이고 null이 아닌 경우 모두 저장 프로 시저가 제대로 실행되는지 확인하려고 했습니까? – Vikdor
예, 날짜가 있으면 제대로 실행되지만 문제는 java.sql.Date 생성자에 제공된'evaluation.getStartDate(). getMillis()'가 null을 반환 할 때'NullPointerException '. 그래서 내가 null을하고 프로 시저 대신 기본값 (null) 삽입 할 경우 매개 변수를 제공 할 싶습니다. – Robert
'evaluation.getStartDate() == null'이라면'input_params.put (START_DATE_INPUT_PARAM, null)'을 시도해보십시오. 마찬가지로'evaluation.getEndDate == null'에 대해서도 마찬가지입니다. – Vikdor