UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Java】MapStructのMappingアノテーション内で式を使わなくてもよかった

以前にMapStructのMappingアノテーション内で式を使ってオブジェクト間のマッピング処理を行なったが、そんなことを書かずともMapStructで実現できた

以前の記事   uga-box.hatenablog.com

例としてあげたのは下のようなプロパティをもつDTO

   private BigDecimal lat;
   private BigDecimal lng;

これらにマッピングしたいというもの

public class Latitude {
  @NonNull BigDecimal latitude;
}
public class Longitude {
  @NonNull BigDecimal longitude;
}
public class LatLng {
  @NonNull Latitude latitude;
  @NonNull Longitude longitude;
}
public class Coordinate {
  public LatLng latLng;
}

記事に書いたような式を書かずとも下のような書き方で実現できた

@Mapping(target = "latLng.latitude", source = "result.lat")
@Mapping(target = "latLng.longitude", source = "result.lng")
Coordinate translate(ResultDto result);

MapStructめちゃ便利だった