Dan*_*aub 2 java mapping mapstruct
当我尝试mapper在2 classesin 之间创建一个时mapstruct,
我在warning编译代码时得到了:
src/main/java/mapstruct/DogMapper.java:15: warning: Unmapped target property: "otherField".
Cat convert(Dog dog);
^
1 warning
Run Code Online (Sandbox Code Playgroud)
这是我要映射的两个对象:
狗
@Getter
@Setter
public class Dog {
private String say;
}
Run Code Online (Sandbox Code Playgroud)
猫
@Getter
@Setter
public class Cat {
private String say;
private String otherField;
}
Run Code Online (Sandbox Code Playgroud)
这是我的Mapper
@Mapper
public interface DogMapper {
DogMapper mapper = Mappers.getMapper( DogMapper.class );
@Mapping(source = "say", target = "say")
Cat convert(Dog dog);
}
Run Code Online (Sandbox Code Playgroud)
我阅读了mapstruct docs,我知道我可以通过多种方式排除此特定字段:
@Mapping(ignore = true, target = "otherField")
Run Code Online (Sandbox Code Playgroud)
或者通过这种方式:
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
Run Code Online (Sandbox Code Playgroud)
但我的最终目的是要排除名为特定领域otherField,
从我所有的映射器,但不排除我没有使用其他的领域。
有什么办法可以实现?
您已经回答了自己的问题,并且不确定我是否正确理解了您。您只想输入@Mapping(ignore = true, target = "otherField")一次?
如果此字段在某些通用基类中,则可以使用“ 共享配置”。否则,您要做的事情@Mapping(ignore = true)就是走的路。
边注。您不必添加@Mapping(source = "say", target = "say")MapStruct即可自动映射具有相同名称的属性
| 归档时间: |
|
| 查看次数: |
6648 次 |
| 最近记录: |