MapStruct Examples
This repository contains examples showing how to use MapStruct, a Java annotation processor for the generation of type-safe bean mapping classes.
Currently, the following examples exist:
-
mapstruct-on-ant: Shows how to use MapStruct in Ant-based projects; to build this example, run
ant build
on the command line
-
mapstruct-on-gradle: Shows how to use MapStruct in Gradle-based projects; to build the example project, run
./gradlew clean build
on the command line
-
mapstruct-lombok: Shows how to use MapStruct together with Lombok (with both a Maven
pom.xml
and a Gradle build.gradle
); to build the example project, run either mvn clean install
or ./gradlew clean build
on the command line
-
mapstruct-iterable-non-iterable: Shows how by means of a mapper util class conversions can be made from an iterable- to its non-iterable element
-
mapstruct-mapping-from-map: Shows how by means of a mapper util class and qualifiers extracting value can be carried out on Maps. Watch mapstruct/mapstruct#1075 for native support.
-
mapstruct-rounding: Shows how by means of a mapper util class and qualifiers roundings can be carried out on Numbers
-
mapstruct-examples-updatemethods-1: Shows how to update an existing target object
-
mapstruct-examples-field-mapping: Shows how MapStruct can be used with "struct" like objects with public fields
-
mapstruct-nested-bean-mappings: Shows how to map object graphs via a main root method
-
mapstruct-mapping-with-cycles: Shows how to map object graphs that can contain cycles
-
mapstruct-spi-accessor-naming: Example on how to use the Service Provider Interface (SPI) for a custom accessor naming strategy.
-
mapstruct-protobuf3: Example on how to use protobuf3 with MapStruct
-
mapstruct-kotlin: Example on how to use MapStruct with Kotlin using KAPT (Kotlin Annotation Processing Tool)
-
mapstruct-kotlin-gradle: Example on how to use MapStruct with Kotlin and Gradle Kotlin DSL using KAPT
-
mapstruct-jpa-parent-child: Example on how to use @Context in relation to parent / child relations in JPA)
-
mapstruct-suppress-unmapped: Shows how mapping to target properties can be ignored without warning by default in a mixed scenario. However bean property mappings that have the same name will still be applied.
-
mapstruct-lookup-entity-with-composed-key: Shows how an object with composite key can be read from the database in a mapping method.
-
mapstruct-clone: Shows how an object can be deeply cloned by defining all mapping methods.
-
mapstruct-metadata-annotations: Demonstrates how to read annotations and use them as mapping instruction.
-
mapstruct-mappers-repo: Demonstrates how one can build a repo of mappers by means of code generation.
License
The examples in this project are licensed under the Apache License, Version 2.0.