merge detached entity
От: Aler-om  
Дата: 05.03.08 06:52
Оценка:
Есть две сущности Parent и Child, связанные отношением OneToMany, fetch = Eager
Запрашивается parent, и передается на удаленный толстый Swing-клиент. Там пользователь удаляет из коллекции child'ов один или несколько объектов, а также добавляет новые.
Затем parent передается на сервер, где вызывается merge(parent).
Все добавленные Child-объекты сохраняются в базу. А вот как быть с удаленными из коллекции ? в базе они остаются.
AS : JBoss 4.2.2.GA
Re: merge detached entity
От: leokom Украина http://neformatc.blogspot.com
Дата: 06.03.08 10:27
Оценка:
Здравствуйте, Aler-om, Вы писали:

AO>А вот как быть с удаленными из коллекции ? в базе они остаются.


У вас наверное есть аннотация вроде
@JoinColumn(name = "some", insertable=true, updatable=false)
Поставьте updatable=true — должно помочь.
Больше инфы тут
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3008
Re[2]: merge detached entity
От: Aler-om  
Дата: 07.03.08 06:52
Оценка:
Здравствуйте, leokom, Вы писали:

L>@JoinColumn(name = "some", insertable=true, updatable=false)


В итоге заработала следующая конструкция :
@OneToMany(cascade=CasadeType.All, mappedBy="parent", fetch=FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)

Но. У Child есть ссылка на parent
@ManyToOne(cascade=CascadeType.MERGE)
@JoinColumn(name="parentID",nullable=false)

При nullable=false удаление вызывает Exception
Проставляю nullable=true и записи удаляются без ошибок. Но снятие данного ограничения сильно смущает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.