JOIN
-
[SQL][QueryDSL] LEFT JOIN, RIGHT JOIN의 차이점 비교하기 (Feat. 상속 관계의 Entity 쿼리하기)Today I Learned 2023. 6. 27. 15:50
채팅 기록 조회 백엔드 애플리케이션에서 특정 사용자가 자신이 참가하는 경기 게시글에 생성된 채팅방 페이지로 이동할 때, 해당 경기 식별자를 갖는 모든 채팅 내역을 조회하는 기능이 있었다. 해당 기능은 JPQL을 직접 작성해 Repository의 쿼리 메서드에 부여하는 방식으로 구현했었고, 이때까지는 사용자가 실제로 입력한 메시지와 특정 이벤트가 발생했을 때의 메시지를 구분해서 조합한 뒤 클라이언트에 DTO로 반환하고 있었다. 해당 기능을 위한 Entity인 ChattingMessage를 추상 클래스화하고, 채팅 메시지와 이벤트 메시지를 ChattingMessage를 상속받은 구체 클래스로 정의해 모든 메시지를 하나의 List에 담아 반환하도록 하는 것을 리팩터링의 목표로 두고 작업을 진행하던 중, LEF..