我有一個由多個子類(聚合)組成的 JPA 實體(但這個問題通常很有趣)。我需要在數(shù)據(jù)庫中創(chuàng)建一個與現(xiàn)有條目 90% 相同的新條目(一些業(yè)務價值,當然 ID 需要不同)。因為我們需要在實體和 TO 之間進行映射的 mapstruct,所以我在想“mapstruct 可以為我做這個嗎?” 創(chuàng)建深層副本后,我可以簡單地更新剩余字段并持久化對象。手動編寫復制構造函數(shù)很容易出錯(因為新添加的字段可能會被遺忘),生成器方法將不勝感激。
2 回答

暮色呼如
TA貢獻1853條經(jīng)驗 獲得超9個贊
是的,您可以使用@DeepClone:
此 Javadoc 包含一個示例: https ://mapstruct.org/documentation/dev/api/org/mapstruct/control/MappingControl.html
@Mapper(mappingControl = DeepClone.class)
public interface CloningMapper {
CloningMapper INSTANCE = Mappers.getMapper( CloningMapper.class );
MyDTO clone(MyDTO in);
}

吃雞游戲
TA貢獻1829條經(jīng)驗 獲得超7個贊
是的。但是要小心。如果 MapStruct 在源和目標上發(fā)現(xiàn)相同的類型,它將簡單地獲?。ǘ皇强寺。┰搭愋汀3悄銥樗x一個方法簽名。
換句話說:仔細檢查生成的代碼。
添加回答
舉報
0/150
提交
取消