MapStruct

정리공간·2022년 6월 1일
0

의존성 추가


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이 만들어진 것을 확인할 수 있다

0개의 댓글

관련 채용 정보