💻 Backend/스프링

Spring boot JPA / ModelMapper, Entity -> DTO 변환

미미누 2022. 2. 2. 01:54

Post에 대한 간단한 컨트롤러 구현

@Controller
class PostRestController {

    @Autowired
    private IPostService postService;

    @Autowired
    private IUserService userService;

    @Autowired
    private ModelMapper modelMapper;

    @GetMapping
    @ResponseBody
    public List<PostDto> getPosts(...) {
        //...
        List<Post> posts = postService.getPostsList(page, size, sortDir, sort);
        return posts.stream()
          .map(this::convertToDto)
          .collect(Collectors.toList());
    }
}

stream().map.collect를 이용하여 Entity를 Dto list로 쉽게 변환 가능하다.

 

 

Post 엔터티에서 PostDto 로의 변환

private PostDto convertToDto(Post post) {
    PostDto postDto = modelMapper.map(post, PostDto.class);
    return postDto;
}