在映射器Java Mapstruct中设置属性而不进行映射

问题描述 投票:0回答:1

我有一个像这样的映射器:

Cat toAnotherCat(Cat origin);
我需要另一个像这样的映射器(
CatsHouse
有一个属性:
Cat oneOfCats;
):
CatsHouse toNewCatsHouse(CatsHouse catsHouse)

当我运行 Maven 构建时,在 toNewCatsHouse 实现中我看到

newCatHouse.setOneOfCats(toAnotherCat(catsHouse.getOneOfCats()))

但是我需要

newCatHouse.setOneOfCats(catsHouse.getOneOfCats())
而不是这个

我怎样才能得到它?如何禁止自动使用toAnotherCat?

java mapping mapstruct
1个回答
0
投票

我找到了解决方案:使用 MappingControl.Use.DIRECT 我创建一个注释:

@Retention(RetentionPolicy.CLASS)
@MappingControl( MappingControl.Use.DIRECT )
public @interface DirectMappingControl {
}

并在 toNewCatsHouse 上使用: @Mapping(目标=“oneOfCats”,mappingControl=DirectMappingControl.class)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.