Mal*_*ran 5 java null nested mapstruct
我想映射嵌套的java对象。Customer.address.houseNumber到userDTO.homeDTO.addressDTO.houseNo。
期望: 当且仅当 Customer.address.houseNumber 不为 null 时,才homeDTO在 下创建对象userDTO。否则,不要创建任何目标对象。
问题: 我已经"NullValueCheckStrategy.ALWAYS"在映射器中使用了,但是mapstruct正在检查是否address不为空,然后它会创建homeDTO. 里面address,houseNumber就是null。我想要空检查直到houseNumber(叶/最后一级对象),然后创建目标对象。
我怎样才能实现这个目标?
这是我正在使用的映射。
@Mapper( nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS )
public interface Customer2UserMapper {
@Mapping(source="address.houseNumber", target="homeDTO.addressDTO.houseNo" )
void mapCustomerHouse(Customer customer, @MappingTarget UserDTO userDTO) ;
}
Run Code Online (Sandbox Code Playgroud)
这与mapstruct/mapstruct#879中的内容类似。目前您正在寻找的东西是不可能的。
一种方法是使用一种@AfterMapping方法将其设置回null如果address.houseNumbernull