JAVA

[JAVA] Q-Type

응디 2022. 3. 7. 17:35

Q-Type class는 Querydsl을 설정을 진행을 완료하면 @Entity가 붙은 클래스를 찾아 자동으로 생성된다.

예 ) @Entity가 붙은 User.java 의 QUser.java 클래스 파일이 자동으로 생성됨

 

이러한 Q-Type의 class들은 Querydsl을 사용할 때 우리가 만든 도메인 클래스의 구조를 설명해주는 역할을 한다.  

 

Q class 인스턴스를 사용하는 방법은 2가지가 있다.

1. 별칭 직접 지정 

QMember qMember = new QMember("m");

 

2. 기본 인스턴스 사용

QMember qMember = QMember.member;

 

이걸 더 줄여서 사용하기 위해 static import와 함께 사용한다.

아래 처럼 선언하면 굳이 선언을 해주지 않아도 사용 할 수 있다.

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

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

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

이미지 기울임체가 qtype static import 활용됨

이때 실행되는 jpql을 확인해보고싶다면? → 설정파일에 다음을 추가 하라!

spring.jpa.properties.hibernate.use_sql_comments: true

 

※ 참고 : 같은 테이블을 조인해야 하는 경우가 아니면 기본 인스턴스를 사용하는게 좋다.

'JAVA' 카테고리의 다른 글

[JAVA] 결과조회(fetch)  (0) 2022.03.14
[TEST] 예외 발생 테스트  (0) 2022.03.08
[TEST] 날짜 자동 생성 테스트  (0) 2022.03.03
[JAVA] Querydsl 설정  (0) 2022.03.03
[JAVA] web 확장 - 페이징과 정렬  (0) 2022.03.03