第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

MapStruct:來自不同實體的字段映射到同一實體不同的字段

MapStruct:來自不同實體的字段映射到同一實體不同的字段

三國紛爭 2021-10-28 09:24:29
我有 A 類、B 類和 C 類。A 類有三個變量,它根據(jù) B 類和 C 類的不同字段進行填充。當我使用映射器填充對象時,只保留最后使用的映射器值。如何確保填充所有值。我正在使用 MapStruct 映射器(版本 1.2.0)和 Spring Boot 版本 2.0.3Sample code below:Class A{  String a;  String b;  String c;  }Class B{ String b1;}Class C{    String c1;}public interface AtoCmapper{  @Mappings({      @Mapping(target="c", source="source.c1")  })  A CtoA(C source);  @Mappings({      @Mapping(target="c1", source="source.c")  })  C AtoC(A source);}public interface AtoBmapper{  @Mappings({      @Mapping(target="b", source="source.b1")  })  A BtoA(B source);  @Mappings({      @Mapping(target="b1", source="source.b")  })  B AtoB(A source);}Class DAO{ @Autowired AtoBmapper aToBMapper; @Autowired AtoCmapper aToCMapper; public void testMapping(){  A aObject = new A();  aObject = aToBMapper(bObject); // Assume bObject is object to Type B and it is initialized properly  aObject = aToCMapper(cObject); // Assume cObject is object to Type B and it is initialized properly } //Now when I call testMapping() resulting A object only has value set for variable c, value of b is lost. How can I make sure that Values from B and C are set properly to Class A}
查看完整描述

1 回答

?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

MapStruct 可以更新現(xiàn)有實例!為此,請通過具有@MappingTarget該類型的第二個注釋參數(shù)的變體引入新的映射方法(或替換舊的方法)A(在這種情況下,可以用 替換返回類型void):


// In AtoBmapper

@Mappings(...)

void updateAFromB(B source, @MappingTarget A target);


// In AtoCmapper

@Mappings(...)

void updateAFromC(C source, @MappingTarget A target);

然后你可以寫:


A aObject = new A();


aToBMapper.updateAFromB(bObject, aObject);

aToCMapper.updateAFromC(cObject, aObject);


// now aObject should contain the cumulated data from b and c


查看完整回答
反對 回復 2021-10-28
  • 1 回答
  • 0 關注
  • 677 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號