【发布时间】:2018-03-10 05:52:58
【问题描述】:
我想映射嵌套的 java 对象。 Customer.address.houseNumber 到 userDTO.homeDTO.addressDTO.houseNo。
期望:当且仅当Customer.address.houseNumber 不为空,然后在userDTO 下创建homeDTO 对象。否则不要创建任何目标对象。
问题:我在映射器中使用了"NullValueCheckStrategy.ALWAYS"。但是 mapstruct 正在检查 address 是否不为空,然后它会创建 homeDTO。在 address 内部,houseNumber 为 NULL。我想要空检查直到houseNumber(leaf/last level object),然后创建目标对象。
请告知我应该如何实现这一目标
这是我正在使用的映射。
@Mapper( nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS )
public interface Customer2UserMapper {
@Mapping(source="address.houseNumber", target="homeDTO.addressDTO.houseNo" )
void mapCustomerHouse(Customer customer, @MappingTarget UserDTO userDTO) ;
}
【问题讨论】:
-
您附加的代码中有一些拼写错误(错误),例如
customer.getAddress()=.getHouseNumber() -
谢谢安德烈。已更正。
标签: java null nested mapstruct