자료문서 PDF 파일

실전! Querydsl v1.1.pdf

Querydsl vs JPQL

기본 Q-Type 활용

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

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

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

import static study.querydsl.entity.QMember.*;
  @Test
  public void startQuerydsl3() {
//member1을 찾아라.
Member findMember = queryFactory
              .select(member)
              .from(member)
              .where(member.username.eq("member1"))
							.fetchOne();
        assertThat(findMember.getUsername()).isEqualTo("member1");
}

다음 설정을 추가하면 실행되는 JPQL을 볼 수 있다.

spring.jpa.properties.hibernate.use_sql_comments: true

검색 조건 쿼리

기본 검색 쿼리

@Test
public void search() {
    Member findMember = queryFactory
            .selectFrom(member)
            .where(member.username.eq("member1")
                    .and(member.age.eq(10)))
            .fetchOne();
    assertThat(findMember.getUsername()).isEqualTo("member1");
}

검색조건은 .and(),.or()를메서드체인으로연결할수있다.

참고: select , fromselectFrom 으로 합칠 수 있음