亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以使用 Mapstruct 創建 Java 對象/實體的 DeepCopy 嗎?

我可以使用 Mapstruct 創建 Java 對象/實體的 DeepCopy 嗎?

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

2 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超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);


 }


查看完整回答
反對 回復 2023-05-17
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

是的。但是要小心。如果 MapStruct 在源和目標上發現相同的類型,它將簡單地獲?。ǘ皇强寺。┰搭愋?。除非你為它定義一個方法簽名。

換句話說:仔細檢查生成的代碼。


查看完整回答
反對 回復 2023-05-17
  • 2 回答
  • 0 關注
  • 347 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號