I want to map an int to string with a specific mapping, but mapstrcut always converts automatically from int to string using String.valueOf
, how can i deactivated this auto mapping ?
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SeanceMapper {
@Mapping(target = "startHour", qualifiedByName = "toStartHour")
SeanceDTO seanceEntityToseanceDTO(SeanceEntity seanceEntity);
@Named("toStartHour")
default String toStartHour(SeanceEntity seanceEntity) {
String startHour = Integer.toString(seanceEntity.getStartHour());
if (startHour.length() == 3) {
startHour = "0" + startHour;
}
return startHour.substring(0, 2) + "H:" + startHour.substring(2, startHour.length());
}
}
SeanceMapperImpl
@Override
public SeanceDTO seanceEntityToseanceDTO(SeanceEntity seanceEntity) {
if ( seanceEntity == null ) {
return null;
}
SeanceDTO seanceDTO = new SeanceDTO();
seanceDTO.setStartHour( String.valueOf( seanceEntity.getStartHour() ) );
return seanceDTO;
}