오봉이와 함께하는 개발 블로그

Querydsl - 기본 Q-Type 활용 본문

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

'BE > JPA' 카테고리의 다른 글

Querydsl - 결과 조회  (0) 2022.09.16
Querydsl - 검색 조건 쿼리  (0) 2022.09.16
Querydsl - JPQL vs Querydsl  (0) 2022.09.15
Querydsl - 설정, 예제 도메인 모델  (0) 2022.09.15
스프링 데이터 JPA - 네이티브 쿼리  (0) 2022.09.14
Comments