BE/JPA

Querydsl - 기본 Q-Type 활용

오봉봉이 2022. 9. 15. 23:52
728x90

기본 Q-Type 활용

Q클래스 인스턴스를 사용하는 2가지 방법

QMember qMember = new QMember("m"); // 별칭 직접 지정
QMember qMember = QMember.member; // 기본 인스턴스 사용

기본 인스턴스를 static import와 함께 사용

아래 방법으로 사용하면 정말 깔끔하게 코드를 작성할 수 있다.

import static study.querydsl.entity.QMember.*;

@Test
void startQuerydsl3() { //member1을 찾아라.
    Member findMember = queryFactory
            .select(member)
            .from(member)
            .where(member.username.eq("member1"))
            .fetchOne();
    assertThat(findMember.getUsername()).isEqualTo("member1");
}

Querydsl은 결과적으로 JPQL의 빌더 역할을 하는데 실행되는 JPQL을 볼 수 없다.
다음 설정을 추가하면 실행되는 JPQL을 볼 수 있다.

spring.jpa.properties.hibernate.use_sql_comments=true

같은 테이블을 조인해야 하는 경우일 때 기본 인스턴스 하나를 통해서 조인을 할 수 없기 때문에 기본 인스턴스와 별칭을 직접 지정해서 조인을 해야 한다. 때문에 같은 테이블을 조인해야 하는 경우가 아니면 기본 인스턴스를 사용하자

인프런 김영한 지식공유자님 강의 : 실전! Querydsl
728x90