我试图将A-DTO对象映射到A-DO对象,每个对象分别具有T-DTO和T-DO的集合(列表)。我正在尝试在REST API的上下文中执行此操作。这是一个单独的问题,它是否是一个正确的方法 - 我正在解决的问题是更新的情况。基本上,如果A-DTO中的一个T-DTO发生变化,我希望将该变化映射到A-DO内的相应T-DO。推土机映射/更新集合
我在推土机文档中找到了relationship-type="non-cumulative"
,以便集合中的对象被更新(如果存在)。但是最终Dozer在A-DO的系列中插入了一个新的T-DO!
注:我没有实现equals
!它仅基于现在的主键。
任何想法? PS:如果你认为这是一个不好的想法来处理一对多依赖实体的更新,请随时指出......我不是100%确定我喜欢那种方法,但是,我的REST foo不是很强大。
UPDATE
equals
实现:
@Override
public boolean equals(Object obj) {
if (obj instanceof MyDOClass) {
MyDOClass other = (MyDOClass) obj;
return other.getId().equals(this.getId());
}
return false;
}
你完全确定你的'equals'和'hashcode'(如果适用)实现是正确的吗?你不插入一个新的对象?你会介意发布你的'等于'和什么更新在两个对象? – sakura
感谢您的建议;我认为“平等”是好的......我已经将它添加到了问题中。至于什么更新 - 只有一个浮动字段。 – alexakarpov