Рекомендуемый способ использования merge() - сначала сначала получить DTO, прежде чем вводить изменения.Hibernate: Doman Model to JPA Entity/DTO & Merge() Схема проектирования или передовая практика
public void merge(PersonModel model) {
Person inputDTO = PersonBuilder.build(model)
Person dto = get(pk)
dto.setName(inputDTO.getName())
dto.getChildren().clear()
Iterator<Child> iter = inputDTO .getChildren().Iterator();
while(iter.hasNext()){
dto.getChildren().add(iter.next());
}
dto.merge();
}
Есть ли более элегантный способ проведения такой операции перевод домена модели в DTO и слияние его с тем, что никакие данные не будут случайно удалены.
Пример задачи: Hibernate: prevent delete orphan when using merge();
Я считаю необходимость очистить список и добавить его очень расточительно.
Может ли кто-нибудь порекомендовать мне шаблон дизайна или способ его правильного кодирования?
Спасибо
ADD ON:
1) Можно использовать Hibernate HashSet заменить список? Будет ли hibernate hashset заменять базу элементов на первичные ключи?
любая помощь?
Было бы намного яснее, если бы вы не использовали термин DTO для обозначения объекта JPA. –
Редактированное название ... будет редактировать контент, как только я вернусь с работы. – seesee
Является ли отношение к Child @OneToMany, или это композит? – wrschneider