我試圖將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