Q클래스

@Entity
public class Member {
    private Long id;
    private String name;
    private String email;
}

이런 엔티티 클래스가 있다면 Querydsl은 이를 기반으로
QMember라는 클래스를 생성
public class QMember extends EntityPathBase<Member> {
    public static final QMember member = new QMember("member");

    public final StringPath name = createString("name");
    public final StringPath email = createString("email");
    public final NumberPath<Long> id = createNumber("id", Long.class);

    public QMember(String variable) {
        super(Member.class, forVariable(variable));
    }
}

QMember.member:
QMember의 정적 변수로, 쿼리 작성 시 객체로 사용됨.
StringPath, NumberPath:
각 엔티티 필드(name, email, id)를 타입 안전하게 참조하기 위한 필드임.

Q클래스의 주요 이점

  1. 타입 안전성:
  2. 가독성 향상:
  3. 동적 쿼리 작성:

애노테이션

1. Spring 관련 애노테이션