我遇到了从MapStruct映射字段的问题。
我有两节课。 第一个域名"事件"例如,使用字段
1) id
2) lastUpdate
2) type
3) participants
4) description
第二课是" EventForm"。 EventForm有字段:
1) type
2) participants
3) description
当我想更新现有事件时,会发生以下情况: 1)我通过Id
从数据库中获取现有事件 Event event = eventService.get(id);
事件的id = 10000,lastUpdate = 11213123123;
2)我将字段从表单映射到域类
event = mapper.eventFormToEvent(eventForm)
3)该事件在id和lastUpdate值中具有NULL值。
如何忽略目标类中所有未映射的字段?
我将指定我需要忽略所有未映射的字段,而不是逐个
答案 0 :(得分:0)
您要找的是updating bean instances。这是您需要用于您的用例。它使用@MappingTarget
注释。
您的映射器将如下所示:
@Mapper
public interface MyMapper {
void update(@MappingTarget Event event, EventForm eventForm);
}
或:
@Mapper
public interface MyMapper {
Event update(@MappingTarget Event event, EventForm eventForm);
}
在第二种情况下,MapStruct只返回传递的event
。您必须记住,为@MappingTarget
传递的参数不得为null
。