QueryDSl 하나 테이블을 여러번 Join 할 때 alias

블로그를 옮겼습니당·2021년 5월 3일
0
post-thumbnail

시작

  • 2021-05-07 group_concat이 안티패턴이라는 것을 증명하지 못하고 있음. GroupBy를 쓰면 무조건 file sort가 되는 것이 아님을 배웠고 그 GroupBy에 쓰이는 칼럼이 인덱싱이 되면 file sort가 나지 않음. 그러므로 이전에 썼던 내용은 근거가 없는 글.

이미 배포된 프로젝트에 점점 누적되는 데이터량으로 인해 리팩토링을 했고 쿼리를 건드렸다. 통계프로젝트였기에 GroupBy 가 들어가 있었으며 그것을 합치는 group_concat을 사용하였다. ( 이 설정하는 부분도 따로 포스팅 할 예정 ) group_concat을 썼으므로 GroupBy 같은 경우 Order by null 을 써도 filesort는 불가피 했다. 그렇기에 group_concat을 없애고 무조건 left join으로 해결해야했고 그 과정속에서 하나의 테이블을 여러번 조인해야하는 상황이 왔다. 그래서 QueryDSL alias가 필요로 했다.

코드

QtempA_Statistics aA = new QtempA_Statistics("tempA");
QtempA_Statistics aAA = new QtempA_Statistics("tempAA");
QtempB_Statistics bB = new QtempB_Statistics("tempB");
QtempB_Statistics bBB = new tempB_Statistics("tempBB");

QtempA_Statistics를 두번 조인을 해야하므로 각 tempA, tempAA라는 별명을 붙여주고 코드를 구현해야 한다.

끝맺음

별거 없다. 마지막 짱구 사진.

profile
https://github.com/minyul

0개의 댓글