Я думаю, что проблема с вашим кодом, если я правильно понял ваш ввод, заключается в том, что вы передаете разделенные запятыми (,) строки даты в LocalDate.parse(abc.getDate(),dateTimeFormatter)
.
Вам необходимо каждый раз передавать одну дату методу parse (), так как он пытается отформатировать предоставленный ввод строки с форматом форматирования даты и, следовательно, возникает ошибка, когда он встречает запятую (,) при вводе " 03/03 / 2020,03 / 03/2020 ".
Пожалуйста, обратитесь к официальной документации для того же.
Ниже вы можете попробовать:
String[] inputDates = abc.getDate().split[","];
for (String date : inputDates) {
// you can now use LocalDate.parse(abc.getDate(),dateTimeFormatter) here
// write your logic here.
}
Надеюсь, это поможет вам прояснить ваши сомнения, если нет, дайте мне знать ваш точный вопрос, и я постараюсь помочь вам.
РЕДАКТИРОВАТЬ 1 Для вставки данных
Ниже приведен способ вставки данных:
Создайте таблицу, в которой будут храниться даты, имеющие 3 столбца - id (PK), abc_id (FK ref. AB C table) , дата (хранить одну дату здесь). Теперь предположим, что имя вышеприведенной таблицы - abc_date_map, а затем ссылаемся на эту сущность как OneToMany в вашей сущности AB C. Как показано ниже,
@Entity
class ABC {
@Column(name="NO")
private String NO;
@Transient
private String date;
@Column(name="abc_date_map_id")
private List<AbcDateMap> abcDateMapEntityList;
//getters & setters//tostring
}
И ваша сущность AbcDateMap будет выглядеть как
@Entity
public class AbcDateMap{
@Column(name="abc_id")
private Integer abcId;
@Column(name="date")
private LocalDate localDate;
// getters setters
}
И ваша логика вставки сущности c будет выглядеть так:
public Long insert(ABC abc) {
abc.setNo(/*something*/);
List<AbcDateMap> l = new ArrayList<>();
AbcDateMap abcDate = new AbcDateMap();
for (String date : abc.getDate().split(",")) {
abcDate.setLocalDate(/*parse date here and store*/);
abcDate.setAbcId(abc.getId());
}
abc.setAbcDateMapEntityList(l);
repo.save(abc);
}
Теперь Выше приведен не точный код, вам придется вычеркнуть его sh, возможно, есть ошибки синтаксиса / семантики. Также вам нужно будет изменить его в соответствии с вашими требованиями.
Надеюсь, это поможет вам.
Удачи и счастливого обучения!