使用 merge() 的推荐方法是在输入更改之前首先获取 DTO。
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 并合并它的操作,以免意外删除数据。
问题示例: 休眠:使用merge()时防止删除孤儿;
我发现需要清除列表并添加它非常浪费。
有人可以向我推荐一种设计模式或一种正确编码的方法吗?
谢谢
添加在:
1) 可以用 Hibernate Hashset 代替 List 吗?hibernate hashset 会根据主键替换元素吗?
有什么帮助吗?