Use the nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS
on the mapping property you want to be checked. In the following snippet you can see a PostalAdress
entity is mapped to an entity of the same type, but the id
is overwritten only when it is present in the source
:
import java.time.LocalDateTime; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; import com.example.entity.PostalAddress; @Mapper( componentModel = "cdi", imports = {LocalDateTime.class}) public interface PostalAddressEntity2EntityMapperService { @Mapping(source = "id", target = "id", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) PostalAddress toPostalAddressntityToPostalAddressEntity( PostalAddress PostalAddress); }
This will generate something similar with the following
package com.example.entitytoentity; import com.example.entity.PostalAddress; import java.time.LocalDateTime; import javax.annotation.processing.Generated; import javax.enterprise.context.ApplicationScoped; @Generated( value = "org.mapstruct.ap.MappingProcessor", date = "2021-09-01T14:28:11+0200", comments = "version: 1.4.2.Final, compiler: javac, environment: Java 11.0.12 (Azul Systems, Inc.)" ) @ApplicationScoped public class PostalAddressEntity2EntityMapperServiceImpl implements PostalAddressEntity2EntityMapperService { @Override public PostalAddress toPostalAddressEntity(PostalAddress PostalAddress) { if ( PostalAddress == null ) { return null; } PostalAddress PostalAddress1 = new PostalAddress(); if ( PostalAddress.getId() != null ) { PostalAddress1.setId( PostalAddress.getId() ); } PostalAddress1.setStreeNo( PostalAddress.getStreetNo() ); PostalAddress1.setStreet( PostalAddress.getStreet() ); PostalAddress1.setMainAdress( PostalAddress.getMainAdress() ); return PostalAddress1; } }
Shared with ❤️ from Codever. 👉 use the copy to mine functionality to add it to your personal snippets collection.
Top comments (0)