以前に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めちゃ便利だった