첫 번째 방법)
@OneToMany(mappedBy="post", fetch=FetchType.EAGER, cascade=CascadeType.REMOVE)
@OrderBy("id desc")
private List<Comment> comment;
댓글 Comment과 M:1 관계를 맺는 Post에 @OrderBy 어노테이션 추가
Comment의 id 필드를 기준으로 내림차순한다.
List<Comment> comments = postRepository.findById(postId).orElseThrow(() -> new PostNotFoundException(postId)).getComment();
Post에서 comment를 가져온다.
두 번째 방법)
public List<CommentResponseDto> getCommentList(Long postId){
List<Comment> comment=commentRepository.findCommentsByPostOrderByIdDesc(postRepository.findById(postId).orElseThrow(() -> new PostNotFoundException(postId)));
List<CommentResponseDto> results=comment.stream().map(x -> CommentResponseDto.builder()
.comment(x).build()).collect(Collectors.toList());
return results;
}
findCommentsByPostOrderByIdDesc는 게시글에 달린 댓글들을 id를 기준으로 내림차순해서 가져온다.
참고 👇
https://www.baeldung.com/spring-data-sorting
반응형