개요
QClass
- QueryDsl 에서 제공하는 클래스
JPAAnnotationProcessor가 컴파일 시점에 @Entity와 @Embeddable 어노테이션을 찾는다.
- 그 후 해당 내용들을 분석하여
QClass들을 생성한다.
- 생성된
QClass는 QueryFactory에 주입하여 사용한다.
- 왜 QClass 를 만들어서 사용할까?
- Entity Class 에서는 property 에 접근하려면 객체를 만들어서 접근해야 한다.
- 그래서 MetaClass 즉 static 한 Class 를 만들어 지원하게 되면, 객체를 생성할 필요 없이 바로 접근하여 사용할 수 있게 된다.
- 그래서 QueryDsl 을 사용할 때 해당 Entity Class 의 property 에 접근을 바로 할 수 있다.
QClass 인스턴스 사용 방법
QMember qMember = new QMember("m"); // 별칭 직접 지정
QMember qMember = QMember.member; // 기본 인스턴스 사용
// 기본 인스턴스 import 후 쿼리에 직접 사용
import static study.querydsl.entity.QMember.*;
Member findMember = jpaQueryFactory
.select(member)
.from(member)
.where(member.userName.eq("member1"))
.fetchOne();