2017-09-12 7 views
0

MapStructからのフィールドのマッピングに問題があります。は、対象クラスにない対象クラスのフィールドを無視します。 MapStruct

私は2つのクラスを持っています。 まずドメインクラス「イベント」フィールド

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

と第二クラスで例えば「EventForm」です。私は、ID

Event event = eventService.get(id);

およびイベントIDを持っていることによって、データベースから既存のイベントを取得する) 1:EventFormフィールドがあります。

1) type 
2) participants 
3) description 

をそして、私は既存のイベントを更新したい場合は、次のようになり= 10000、lastUpdate = 11213123123;

2)Iドメインクラスにフォームのフィールドをマッピングしてい

event = mapper.eventFormToEvent(eventForm)

3)そのイベントの後、IDと最終更新値にNULL値を有します。

ターゲットクラスのマッピングされていないすべてのフィールドを無視するにはどうすればよいですか?

私はあなたが探しているものを1

答えて

0

ずつがupdating bean instancesである、すべてのマップされていないフィールドは無視する必要はないことを指定します。これはあなたのユースケースに使用する必要があります。これは@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であってはならないことに注意してください。

関連する問題