JPA OneToMany проблемы после обновления - PullRequest
0 голосов
/ 20 июля 2010

У меня есть 2 класса, родитель и ребенок, с отношением @OneToMany. Каждый родитель имеет 0 или более детей.

@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.REMOVE})

Родительский класс также имеет другие поля, такие как имя.

Я нахожусь в контейнере, поэтому мой пользовательский интерфейс сделан из JSP.

Когда я хочу изменить объект Parent, я должен передать его сервлету и в браузер клиента. На веб-странице я не хочу помещать всю информацию о детях, мне нужно только иметь текстовое поле для родительского имени.

Когда элемент управления вернется ко мне, я хотел бы создать новый объект Parent с новым именем и merge с EntityManger, не беспокоясь о детях.

1 Ответ

2 голосов
/ 21 июля 2010

Я думаю, что правильный способ - это загрузить существующий родительский объект, установить для свойства name новое значение и сохранить его. Это на самом деле то, что вы делаете.

Таким образом, вашей форме необходимо одно поле для имени, которое может ввести пользователь, и одно скрытое поле, содержащее идентификатор родителя. Когда форма публикуется, вы загружаете родительский объект по идентификатору, устанавливаете имя для введенного значения и сохраняете.

...