У меня есть ассоциация JPA @OneToMany
с экземпляром Curriculum
, имеющим несколько экземпляров WorkExperience
.Сохранение/сохранение отношений сущности JPA до самого этого объекта
Curriculum
JPA объект:
@Entity
public class Curriculum {
...
@OneToMany
private Set<WorkExperience> workExperiences;
...
WorkExperience
JPA лицо:
@Entity
public class WorkExperience {
...
Я изначально хотел упорствовать учебную программу вместе с WorkExperiences в одном EntityManager вызова методы сохраняется.
Однако, учитывая то, как я разработал поток действий веб-интерфейса, я теперь интересно, может ли другой сценарий не представляется возможным то есть:
сохраняются в WorkExperiences Д.Б. первым, а затем, когда пользователь заполнил в основных деталей учебного плана сущностей, чтобы:
установить существующие экземпляры WorkExperience (уже в дБ) к экземпляру учебного плана (не в дБ пока) и
- сохраняется весь граф объектов: учебный план ш с его WorkExperiences.
Это имеет смысл? Я думал о нескольких минусах, например. что произойдет, если пользователь решит не сохранять экземпляр учебного плана? Как очистить висячие строки в таблице WorkExperience?
Есть ли альтернативы или лучшие образцы? Например, было бы хорошей идеей предварительно сохранить экземпляр учебного плана до того, как пользователь проверит форму?
Спасибо за ответ Костя. Хорошо, но где я храню отдельные экземпляры WorkExperience до того, как программа Curriculum будет наконец сохранена? – balteo
@balteo Поместите их в 'Set' внутри отдельного объекта Curriculum, поэтому сохраняющийся будет каскадным. Я не знаком с Spring MVC, но я предполагаю, что у вас есть контроллер для вашего представления, который создается и имеет метод обработки форм. Этот контроллер должен хранить объект Curriculum до его сохранения. Для представлений, в которых пользователи создают новые сущности, я обычно создаю пустой объект во время создания контроллера, работаю на нем, а затем сохраняю его после успешной отправки. – kostja
Умм. Весенние MVC-контроллеры являются одноточечными. Не стоит ставить государство в Синглтон. Я думал об использовании сессии для хранения, но это не очень хорошая идея ... – balteo