반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

샘오리_개발노트

QueryDSL 다른 조건으로 같은 테이블 여러번 조인하기 본문

개발자 전향 프로젝트

QueryDSL 다른 조건으로 같은 테이블 여러번 조인하기

샘오리 2024. 4. 5. 15:13
728x90
반응형

QueryDSL을

사용할줄 안다는 가정하에

Repository 구현체에 QClass를 조건의 수만큼 선언하고

선언한 그 QClass의 인스턴스 변수를 가져와 사용하는 것이다.

 

아래는 조회 예시이다.

 

Q클래스이름 조건1 = new Q클래스이름("조건1");
Q클래스이름 조건2 = new Q클래스이름("조건2");

 

조건1과 조건2를 선언했다면

 

조회를 위해 select에 포함시켜준다.

 

조건1.원하는칼럼.as("가명"),

 

*여기서 중요한 것은 조건1은 기존 테이블이 아니기 때문에 가명을 써줘야 한다.

이 가명을 통해 앞단에서 select를 해올 수 있다.

 

예를 들어 테이블1과 공통 테이블2가 있다고 가정해보자.

공통 테이블2의 원하는 칼럼을 테이블1의 칼럼에 삽입하기 위해서 테이블1의 칼럼을 가명으로 선언하는 것이 편하다.

 

join에도 포함시켜주면 된다.

.leftJoin(조건1).on(기존테이블.기존칼럼.eq(조건1.원하는칼럼))

 

이렇게 되면 

기존테이블의 기존칼럼이 조건1의 원하는 칼럼과 일치하는 조건에 한해 조인이 일어나게 되고

그 조건으로 조인된 값중에 원하는 칼럼을 선언한 가명으로 삽입하게 되며

 

값이 삽입된 그 가명을 앞단에서 출력하면 앞단에서 보여지게 되는 것이다.

 

728x90
반응형
Comments