Converter(DTO <-> Entity)

개발하는 구황작물·2022년 10월 9일
0

메인 프로젝트

목록 보기
6/10

메인 프로젝트 도중 mapper 대신 converter를 이용해보라는 조언을 얻게 되어 converter를 도입해보기로 하였다.

먼저 converter 인터페이스를 만들었다.

public interface Converter<Entity, DTO> {

    DTO toDTO(Entity entity);

    Entity toEntity(DTO dto);

    List<DTO> toListDTO(List<Entity> entityList);
}

이후 converter가 필요한 도메인에 implements 하였다.

@Component
public class PostsImgConverter implements Converter<PostsImg,ImgDto> {

    ...

    @Override
    public ImgDto toDTO(PostsImg postsImg) {
        return ImgDto.builder()
                .id(postsImg.getId())
                .url(postsImg.getImgUrl())
                .fileName(postsImg.getFileName())
                .build();
    }

    @Override
    public PostsImg toEntity(ImgDto imgDto) {
        return null;
    }

    @Override
    public List<ImgDto> toListDTO(List<PostsImg> postsImgList) {
        return postsImgList.stream().map(this::toDTO).collect(Collectors.toList());
    }
}
profile
어쩌다보니 개발하게 된 구황작물

0개의 댓글