【发布时间】:2020-01-20 15:43:48
【问题描述】:
有没有办法配置 MapStruct 映射以忽略子对象,但仍将特定属性映射到子对象?
例如:
@Mapper
interface PersonMapper {
@Mapping(target = "organization", ignore = true) // ignore organization
@Mapping(source = "organizationId", target = "organization.id") // except organization.id
Person toEntity(PersonModel model);
}
这样,目标organization 是非空的,并且从源的organizationId 字段中设置了id 字段。目前,这种方法似乎优先考虑被忽略的孩子organization,属性保留为null。
注意:我希望这样做而不必实现自定义映射方法(例如,仅使用注释)。
【问题讨论】:
-
你不能在同一级别上忽略(所以组织的子属性)..
-
另一种选择是添加
@BeanMapping注释,并带有选项 ignore all = true。