Querydsl - QType

HotFried·2024년 2월 24일
0

Querydsl

목록 보기
2/9

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

  1. QMember member = new QMember("m")
  2. QMember member = QMember.member
public static final QMember member = new QMember("member1");

이렇게 QMember클래스에 인스턴스가 static으로 선언되어있기 때문에 2번 방법으로 선언해도 된다.

+) QMember를 이용하는 클래스에서 QMember를 static으로 선언하면 코드가 더 깔끔해진다.

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

@SpringBootTest
@Transactional
public class QuerydslBasicTest {
    
    ...

    @Test
    public void startQuerydsl3() {
        Member findMember = queryFactory
                .select(member)
                .from(member)
                .where(member.username.eq("member1"))
                .fetchOne();

        assertThat(findMember.getUsername()).isEqualTo("member1");
    }

}

추가 설정

Querydsl을 사용하면 JPQL을 직접 확인할 수 없는데
application.yml에 다음과 같은 코드를 추가하면 된다.

spring.jpa.properties.hibernate.use_sql_comments: true

위 테스트 코드를 실행하면

select member1
from Member member1
where member1.username = ?1 

위와 같은 JPQL이 나온다.
여기서 member이 나오는 이유는 QMember의 기본 인스턴스 별칭이 member1로 설정되어있기 때문이다.

public static final QMember member = new QMember("member1");

참고 :

실전! Querydsl

profile
꾸준하게

0개의 댓글