The following code worked for me.
@Mappings({
@Mapping(source = "genderDTO.name", target = "genderName")
})
GenderRecord dtoTogenderRecord(GenderDTO genderDTO);
- "genderName" is the Enum
- "genderDTO.name" is the String
The result was:
@Override
public GenderRecord dtoTogenderRecord(GenderDTO genderDTO) {
if ( genderDTO == null ) {
return null;
}
GenderRecord genderRecord = new GenderRecord();
if ( genderDTO.getName() != null ) {
genderRecord.setGenderName( Enum.valueOf( GenderType.class, genderDTO.getName() ) );
}
return genderRecord;
}
I also use the following at the interface level to ensure null checks:
@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)