3
我在Oracle中有一個過程,它有12個總參數和3個可選參數。如果我在Spring 3.1.0中使用StoredProcedure對象,如何解釋這些可選參數?Spring StoredProcedure可選參數
這裏是我迄今爲止在我的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);
}
的問題,這是我提供12個參數,如果開始和結束日期是空的,我現在供應10得到一個例外。
在數據庫中的日期的默認值是null
。
由於'Map'可以包含'null'值,你有沒有嘗試只需添加的startDate和結束日期鍵地圖總是看到如果存儲過程運行在兩種情況下的日期是空和非空罰款? – Vikdor
是的,當有一個日期,它運行良好,但問題是當'evaluation.getStartDate()。getMillis()'供給'java.sql.Date'構造函數返回一個空的,我得到一個NullPointerException異常' '。因此,如果它爲null,並且讓過程插入默認值(null),那麼我不想提供該參數。 – Robert
我的意思是說,如果'evaluation.getStartDate()== null',然後嘗試'input_params.put(START_DATE_INPUT_PARAM,null)'。同樣對於'evaluation.getEndDate == null'也是如此。 – Vikdor