Я ищу решение для управления отношением "один ко многим" в HTML-форме с помощью jQuery. Я разрабатываю с Spring, Spring MVC и спящий режим. Я нашел много треков в Интернете, но не полный рабочий пример.
Фон
У меня есть три объекта JPA:
Consult.java
(1)
@Entity
@Table(name = "consult")
public class Consult
private Integer id;
private String label;
private Set<ConsultTechno> consultTechnos;
/* getters & setters */
}
ConsultTechno.java
(2)
@Entity
@Table(name = "consult_techno")
public class ConsultTechno {
private Integer id;
private Techno techno;
private Consult consult;
private String level;
/* getters & setters */
}
Techno.java
(3)
@Entity
@Table(name="techno")
public class Techno {
private Integer id;
private String label;
private Set<ConsultTechno> consultTechnos;
/* getters & setters */
}
Как показано, a Consult (1) содержит n ConsultTechnos (2), которые характеризуются уровнем и Techno (3).
Потребности
Используя форму HTML, я хотел бы иметь кнопку Add a techno
, которая динамически добавляет два поля в DOM:
<input type="text" name="consult.consultTechnos[].techno.id" />
<input type="text" name="consult.consultTechnos[].level" />
Конечно, каждый раз, когда пользователь нажимает на кнопку, эти два поля должны быть добавлены повторно и т.д. Я выбрал input type="text"
для примера, но в конце поля будут двумя select
.
Необходимо рассмотреть четыре вида операций:
- Добавить дочерний объект, когда создает новый главный объект
- Удалить дочерний объект, когда создает новую главную сущность
- Добавить дочерний объект при обновлении новой главной сущности
- Удалить дочерний объект при обновлении нового главного объекта
Проблема
Эта часть макета уже работает, но при отправке формы мне не удается привязать динамически добавленные поля к моему @ModelAttribute consult
.
Есть ли у вас какое-то представление о том, как выполнять такие задания? Надеюсь, я был достаточно ясен...
Заранее спасибо :)