Рубрики
Без рубрики

Принудительная проверка нулевого значения при сопоставлении полей в структуре карты

Используйте. ВСЕГДА в том свойстве сопоставления, в котором вы хотите быть… Помеченный java, когда-либо написанный код, фрагменты кода.

Используйте стратегию проверки нулевого значения. ВСЕГДА на свойстве сопоставления, которое вы хотите проверить. В следующем фрагменте вы можете видеть, что объект Почтовый адрес сопоставляется с объектом того же типа, но идентификатор перезаписывается только тогда, когда он присутствует в источнике :

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);
}

Это приведет к созданию чего-то подобного со следующим

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;
    }
}

Поделился с ❤️ из Codever . 👉 используйте функцию копировать в мой , чтобы добавить ее в свою личную коллекцию фрагментов.

Оригинал: “https://dev.to/codever/force-null-value-check-on-field-mapping-in-mapstruct-37i7”