J'essaie de créer une méthode de correctif avec la cartographie de MapStruit et le constructeur de Lombok.
Mais dans le code généré manquant mapper avec la suppression des valeurs null: p> build () code> appel
@Override
public Cart patch(CartRequest cartRequest, Cart cart) {
if ( cartRequest == null ) {
return null;
}
if ( cartRequest.getCustomer() != null ) {
if ( cart.getCustomer() == null ) {
cart.setCustomer( Customer.builder() ); // HERE build() missing
}
customerRequestToCustomer1( cartRequest.getCustomer(), cart.getCustomer() );
}
if ( cartRequest.getOwner() != null ) {
if ( cart.getOwner() == null ) {
cart.setOwner( Owner.builder() ); // HERE build() missing
}
ownerRequestToOwner1( cartRequest.getOwner(), cart.getOwner() );
}
if ( cartRequest.getPrice() != null ) {
cart.setPrice( cartRequest.getPrice() );
}
if ( cartRequest.getVoucher() != null ) {
cart.setVoucher( cartRequest.getVoucher() );
}
return cart;
}
4 Réponses :
Ceci est un bug de Mapstructeur 1.3.0.final. P>
Je suggérerais de suivre MAPRUCTRER / MAPSRUCT # 1742 pour le correctif. < / p>
La solution actuelle serait de désactiver complètement les constructeurs en définissant le noopbuilderprovider code> via SPI. P>
Comme Gregory Mazur a signalé, Cet article m'a aidé De plus, mais j'avais un système de construction maven. Voici la version de configuration de Maven:
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-jdk8</artifactId> <version>1.3.1.Final</version> </dependency> ... </dependencies> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>1.3.1.Final</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </path> </annotationProcessorPaths> </configuration> </plugin>
Mise à jour pour Lombok 1.18.16.
Démarrage de cette version Configuration de travail pour Maven-compiler-plugin CODE> est P>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.1.Final</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>