2017-09-12 5 views
0

MapStruct를 통해 필드를 매핑하는 데 문제가 있습니다.대상 클래스에없는 필드를 무시합니다. MapStruct

두 클래스가 있습니다. 필드

1) id 
2) lastUpdate 
2) type 
3) participants 
4) description 

그리고 두 번째 클래스 예를 들어 먼저 도메인 클래스 "이벤트"는 "EventForm"입니다. EventForm는 필드가 있습니다

1) type 
2) participants 
3) description 

을 그리고 기존 이벤트를 업데이트 할 때, 다음과 같은 상황이 발생합니다 1) I 이드

Event event = eventService.get(id);

그리고 이벤트에 의해 데이터베이스에서 기존 이벤트를 얻을 ID를 가지고 = 10000, lastUpdate = 11213123123;

2) 해당 이벤트 후 도메인 클래스

event = mapper.eventFormToEvent(eventForm)

3)에 양식에서 필드를 매핑하고하는 것은 ID와 LASTUPDATE 값에 NULL 값이 있습니다.

대상 클래스의 매핑되지 않은 모든 필드를 무시하는 방법은 무엇입니까?

은 내가 당신이 updating bean instances됩니다 찾는거야하지 하나 하나

답변

0

에 의해 모든 매핑되지 않은 필드는 무시해야 할 것을 지정합니다. 이것은 당신이 당신의 유스 케이스를 위해 사용해야 할 것입니다. 이 코드는 @MappingTarget 주석을 사용합니다. 그냥 다시 event을 통과 반환, 두 번째 경우, MapStruct에서

@Mapper 
public interface MyMapper { 

    Event update(@MappingTarget Event event, EventForm eventForm); 
} 

:

@Mapper 
public interface MyMapper { 

    void update(@MappingTarget Event event, EventForm eventForm); 
} 

나 :

귀하의 매퍼처럼 보일 것이다. @MappingTarget에 전달 된 매개 변수는 null이 아니어야합니다.