mapstructはどのようにしてコレクションをオブジェクトに変換しますか?
MapStructを使用してコレクションをオブジェクトに変換する際には、2つのマッピングメソッドを定義する必要があります。1つ目のメソッドは、コレクション内の各要素をオブジェクトに変換するためのものであり、もう1つのメソッドはコレクション全体をオブジェクトに変換するためのものです。
最初、FooMapperという名前のインターフェースを定義します。このインターフェースには、コレクション内の各要素をオブジェクトに変換するためのメソッドと、コレクション全体をオブジェクトに変換するためのメソッドを宣言します。
@Mapper
public interface FooMapper {
FooDto mapToFooDto(Foo foo); // 将集合中的每个元素转化为对象
List<FooDto> mapToFooDtoList(List<Foo> fooList); // 将整个集合转化为对象
}
その後、MapStructを使用してFooMapperの実装クラスを自動生成します。
使用する際には、FooMapperのメソッドを呼び出すことでコレクションをオブジェクトに変換することができます。
FooMapper fooMapper = Mappers.getMapper(FooMapper.class);
// 将集合中的每个元素转化为对象
FooDto fooDto = fooMapper.mapToFooDto(foo);
// 将整个集合转化为对象
List<FooDto> fooDtoList = fooMapper.mapToFooDtoList(fooList);
注意: MapStructを使用する際は、対応する依存関係をpom.xmlファイルに追加する必要があります。
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.1.Final</version>
</dependency>
その他に、コンパイルプラグインを追加する必要があります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.1.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
これがMapStructを使ってコレクションをオブジェクトに変換する方法です。