Je souhaite mapper des objets Java imbriqués. Customer.address.houseNumber
à userDTO.homeDTO.addressDTO.houseNo
.Mapstrtuct: objet imbriqué. Créer un objet cible uniquement si l'élément source n'est pas Null
Attente: Si et seulement si Customer.address.houseNumber
est non nul alors créer homeDTO
objet sous userDTO
. Sinon, ne créez aucun objet cible.
Problème: J'ai utilisé "NullValueCheckStrategy.ALWAYS"
dans le mappeur. Mais mapstruct vérifie si address
n'est pas nul alors il crée homeDTO
. À l'intérieur du address
, le houseNumber
est NULL. Je voudrais la vérification null jusqu'à la houseNumber
(objet feuille/dernier niveau), puis créer les objets cibles.
S'il vous plaît conseiller comment je parvenir
Voici la cartographie que j'utilise.
@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface Customer2UserMapper {
@Mapping(source="address.houseNumber", target="homeDTO.addressDTO.houseNo")
void mapCustomerHouse(Customer customer, @MappingTarget UserDTO userDTO) ;
}
Le code généré est https://github.com/mapstruct/mapstruct/issues/1303
Il y a quelques fautes de frappe (erreur) dans le code que vous trouverez ci-joint, par exemple 'customer.getAddress() =. getHouseNumber()' –
Merci Andrii. Corrigé –