ModelMapper
서로 다른 클래스의 값을 한 번에 복사할 수 있게 도와주는 라이브러리
장점
엔티티를 DTO로 복사하는 등 원하는 클래스에 넣어줄 때 실수가 발생하고 코드가 길어지는 문제를 해결해준다
사용
config를 추가해서 사용한다
@Configuration
public class ModelMapperConfig {
@Bean
public ModelMapper modelMapper(){
return new ModelMapper();
}
}
UserMapDto userMapDto = mapper.map(user, UserMapDto.class);
스킵
/**특정 필드 스킵*/
typeMap.addMappings(mapping -> {
mapping.skipsetFieldName;
});
/**null 필드 스킵*/ modelMapper.getConfiguration().setSkipNullEnabled(true);
/*특정 null 필드 스킵*/
typeMap.addMappings(mapper -> mapper.when(ctx -> !ObjectUtils.isEmpty(ctx.getSource()))
.mapgetPassword, PersonDTO::setPassword);