У меня есть простое pojo с именем «Parent», которое содержит коллекцию объекта «Child».
В hibernate / jpa это просто связь один-ко-многим, дети не знают своего родителя: у этих дочерних объектов может быть другой тип Parent, поэтому проще не знать родителя (представьте, что Child представляет теги у родителей могут быть разные типы объектов, у которых есть теги).
Теперь я отправляю свой родительский объект в представление клиента моего веб-сайта, чтобы позволить пользователю изменять его.
Для этого я использую Hibernate / GWT / Gilead.
Мой пользователь внес некоторые изменения и щелкнул кнопку сохранения (ajax), которая отправляет мой родительский объект на сервер. поля моего родителя были изменены, но, что более важно, некоторые дочерние объекты были добавлены или удалены в коллекции.
Подводя итог, когда родительский объект возвращается на сервер, он теперь имеет в своей коллекции:
- новые "дочерние" объекты, где id равен нулю и должен быть сохранен
- модифицированные дочерние объекты, где id не равен NULL и должен быть объединен
- потенциально взломанные «дочерние» объекты, где id не нулевой, но изначально не принадлежит родительскому объекту
- Дочерние объекты отсутствуют (удалены): необходимо удалить
Как сохранить родительский объект (и его коллекцию)? Вы загружаете родительскую коллекцию из базы данных, чтобы сравнить каждый объект измененной коллекции, чтобы увидеть, нет ли взломанного элемента?
Вы очищаете старую коллекцию (чтобы удалить сироту) и повторно добавляете нового дочернего элемента (но есть некоторый дочерний элемент, который не был изменен)?
спасибо
PS: простите за мой английский, надеюсь, вы поняли концепцию;)