現在公式ではサポートされておらず、自前で実装する必要があります。
以下2つを行うことで変換ができるようになります。
-
ValueReaderを自前で実装する -
ModelMapperのConfigurationに上記で実装したValueReaderを追加する
ValueReaderを自前で実装する
org.modelmapper.spi.ValueReaderというインターフェースが用意されているので、
Recordのフィールドが取得できるように実装します。
以下のソースコードをコピペすれば使えると思います。
やっていることはシンプルで引数の値に応じてリフレクションを使って値を引っこ抜くというコードを書いています。
ModelMapperのConfigurationに上記で実装した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でやった方が楽ちん。