0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ModelMapperでRecord->POJOへのマッピングがしたい

Posted at

現在公式ではサポートされておらず、自前で実装する必要があります。

以下2つを行うことで変換ができるようになります。

  • ValueReaderを自前で実装する
  • ModelMapperConfigurationに上記で実装したValueReaderを追加する

ValueReaderを自前で実装する

org.modelmapper.spi.ValueReaderというインターフェースが用意されているので、
Recordのフィールドが取得できるように実装します。

以下のソースコードをコピペすれば使えると思います。
やっていることはシンプルで引数の値に応じてリフレクションを使って値を引っこ抜くというコードを書いています。

ModelMapperConfigurationに上記で実装したValueReaderを追加する

上記で実装したクラスをRecordValueReaderと名付けたとして、以下のように呼び出しを追加してあげます。

JavaConfig.java
@Bean
public ModelMapper modelMapper() {
    ModelMapper mapper = new ModelMapper();
    mapper.getConfiguration().addValueReader(new RecordValueReader());
    return mapper;
}

これで、以下のように呼び出してあげればRecord -> POJOへの変換ができます。

Converted converted = modelMapper.map(record, Converted.class);

結論

ModelMapperを使いたいなら、
現時点ではRecordを使わずにPOJOでやった方が楽ちん。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?