我想映射嵌套的java对象。 Customer.address.houseNumber
至userDTO.homeDTO.addressDTO.houseNo
。
期望:当且仅当Customer.address.houseNumber
不为空时,才在homeDTO
下创建userDTO
对象。否则不要创建任何目标对象。
问题:我在映射器中使用了"NullValueCheckStrategy.ALWAYS"
。但 mapstruct 正在检查address
是否为空,然后创建homeDTO
。在address
内,houseNumber
为NULL。我希望null检查直到houseNumber
(叶子/最后一级对象),然后创建目标对象。
请告知我应该如何实现这个目标
这是我正在使用的映射。
@Mapper( nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS )
public interface Customer2UserMapper {
@Mapping(source="address.houseNumber", target="homeDTO.addressDTO.houseNo" )
void mapCustomerHouse(Customer customer, @MappingTarget UserDTO userDTO) ;
}
答案 0 :(得分:0)
这与mapstruct/mapstruct#879中的类似。目前您正在寻找的是不可能的。
如果@AfterMapping
为null
address.houseNumber
方法将其重新设置为null