계층형 댓글 구현하려고 하는데, Recursive CTE 사용해서 쿼리 짜려고 하거든.
근데 MyBatis 사용할 때, Recursive CTE 쿼리 결과를 객체에 매핑할 수 있는 방법이 있나?
매핑하려는 객체가 이거거든.
public class Comment {
private final Long id;
private final String content;
private final Long postId;
private final Long memberId;
private final Long parentId; // 부모 댓글 Id
private final List<Comment> childList; // 자식 댓글 리스트
private final LocalDateTime createdDateTime;
private final LocalDateTime modifiedDateTime;
}
어떻게 매핑해야할지 감이 안 오네......
구글링 해봐도 쿼리만 예시로 나오고 MyBatis로 매핑하는 코드는 안 보이네....
아니면 최상위 부모 댓글 조회한 다음에
그 자식 댓글 조회해오고
또 그 자식 댓글 조회하는 방식으로 구현하는 것도 생각해봤는데
그럼 쿼리를 너무 많이 날려서 성능에 안 좋을 거 같은데.....
Recursive cte도 일반 select랑 반환하는 컬럼은 똑같지 않나? 일반 조회쿼리랑 똑같이 하면 될걸
칼럼은 당연히 일반 select문이랑 똑같지. 근데 매핑받는 객체가 트리 구조를 띄고 있잖아. 내 말은 저렇게 트리 구조를 가진 객체에 딱 맞게 매핑시킬 수 있는 방법이 존재하냐는 거야. Recursive CTE은 UNION을 사용해서 수직적으로 데이터를 더해 나가는 방식이잖아. 그럼 이 결과를 MyBatis가 부모 댓글, 자식 댓글을 분간해서 매핑시키게끔 할 수 있냐는 말이야.
부모 자식 합치는건 java에서 하셈