【Java】UUIDで取得した値を配列に格納したい
Q&A
Closed
解決したいこと
【Java】UUIDで取得した値を配列に格納したい
例)
Javaでインフォメーションを作成する機能の中で
新しく作成したインフォメーションの情報を配列化し、複数の行をDBに同時登録したいのですが、UUIDで取得した値を拾うことが出来ません。
解決方法を教えて下さい。
発生している問題・エラー
23502リレーション"trn_information"の列"information_id"のNULL値が非NULL制約に違反しています
該当するソースコード
public String register(InformationModel informationModel) {
String ret = null;
String informationId = "";
if (constants.SCREEN_MODE_NEW.equals(informationModel.getScreenMode())) {
UUID uuid = UUID.randomUUID();
informationId = uuid.toString();
} else {
informationId = informationModel.getInformationId();
}
Map<String, Object> map = new HashMap<>();
map.put("in_screen_mode", informationModel.getScreenMode());
map.put("in_company_id", informationModel.getLoginCompanyId());
map.put("in_information_id", informationId); // 追加: UUIDを代入
String[] arrInforId = new String[informationModel.getInformationList().size()];
String[] arrStartDate = new String[informationModel.getInformationList().size()];
String[] arrEndDate = new String[informationModel.getInformationList().size()];
String[] arrComment = new String[informationModel.getInformationList().size()];
for (int i = 0; i < informationModel.getInformationList().size(); i++) {
arrInforId[i] = (String) informationModel.getInformationList().get(i).get("information_id");
arrStartDate[i] = (String) informationModel.getInformationList().get(i).get("information_start_date");
arrEndDate[i] = (String) informationModel.getInformationList().get(i).get("information_end_date");
arrComment[i] = (String) informationModel.getInformationList().get(i).get("information_comment");
}
map.put("in_information_id", arrInforId);
map.put("in_information_start_date", arrStartDate);
map.put("in_information_end_date", arrEndDate);
map.put("in_information_comment", arrComment);
map.put("in_registered_user_id", informationModel.getLoginUserId());
try {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate.getDataSource()).withFunctionName("information");
SqlParameterSource in = new MapSqlParameterSource().addValues(map);
String out_param = jdbcCall.executeFunction(String.class, in);
ret = out_param;
if (constants.OK.equals(ret)) {
informationModel.setInformationId(informationId);
}
} catch (Exception e) {
ret = e.getMessage();
}
return ret;
}
自分で試したこと
arrInforIdの値がNullなのは確認できたのですが、そこをどう解決すればよいか分からずです、、、
ご教授いただけますでしょうか?
0