如何在MapStruct的方法之间共享实例

时间:2017-07-18 12:45:29

标签: mapstruct

我需要将xml转换为jpa实体。我使用jaxb来获取我的DTO并使用mapStruct将dto转换为实体。 但是,我需要从数据中提取一些数据并将其设置为我的实体上的列表。我的映射器看起来像这样

Particulier toEntity(TParticulier particulier);
List<AttributMeta> toEntity(List<TAttributMeta> attributMetas);
default String extractMetaData(TAttributGufIdWithMeta value) {
List<TAttributMeta> attributMetas=value.getAttributMeta();   
???particulier.addAttributMetas(toEntity(attributMetas));??
return value.getValue().getGufid();
} 

我不知道如何在extractMetaData方法中访问我的实体Particulier。

1 个答案:

答案 0 :(得分:0)

要进行此类映射,您需要将@MappingTarget@BeforeMapping / @AfterMapping结合使用。有关详细信息,请参阅参考文档中的here

简而言之,您需要使用mapper或使用过的引用来获得如下方法:

@AfterMapping // It can also be @BeforeMapping
public void afterMapping(TParticulier source, @MappingTarget Particulier target) {
    //do what you need here
}