의존성 추가
implementation 'org.mapstruct:mapstruct:1.4.1.Final'
implementation 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
implementation "org.projectlombok:lombok:1.18.16"
annotationProcessor "org.mapstruct:mapstruct-processor:1.4.1.Final"
annotationProcessor "org.projectlombok:lombok-mapstruct-binding:0.2.0"
annotationProcessor "org.projectlombok:lombok:1.18.16"
GenericMapper.java 생성
public interface GenericMapper<D, E> {
D toDto(E e);
E toEntity(D d);
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) // null이 아닌 값만 업데이트
void updateFromDto(D dto, @MappingTarget E entity);
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
void updateDtoFromEntity(@MappingTarget D dto, E entity);
}
GenericMapper을 상속하는 interface를 만들고 @Mapper를 붙여줌
@Mapper(componentModel = "spring")
public interface DocnoMapper extends GenericMapper<Dto, Entity> {}
빌드 후 target폴더를 보면 DocnoMapper의 구현제 DocnoMapperImpl이 만들어진 것을 확인할 수 있다