DB/[인프런] 실전! QueryDSL

[QueryDSL] QueryDSL을 사용하는 이유

annovation 2025. 10. 10. 20:03

QueryDSL

 

💡QueryDSL

 

Querydsl - 레퍼런스 문서

본 절에서는 SQL 모듈의 쿼라 타입 생성과 쿼리 기능을 설명한다. com.mysema.query.sql.Configuration 클래스를 이용해서 설정하며, Configuration 클래스는 생성자 인자로 Querydsl SQL Dialect를 취한다. 예를 들어

querydsl.com

 

💡QueryDSL을 사용하는 이유

  • Query를 문자가 아니라 Java 코드로 작성할 수 있게 도와준다.
  • Java 코드로 Query를 작성하기 때문에 문법 오류를 컴파일 시점에 발견할 수 있다.
  • 문법이 SQL과 비슷하기 때문에 쉽게 학습할 수 있다.

JPQL vs QueryDSL

 

💡JPQL

String jpql = "SELECT m FROM Member m WHERE m.username = :username";
List<Member> result = em.createQuery(jpql, Member.class)
                        .setParameter("username", "dev")
                        .getResultList();
  • m.username m.userame이라고 잘못 써도 컴파일러는 에러를 못 잡는다.
  • 런타임에 가서야 "cannot resolve property" 같은 예외가 터진다.

💡QueryDSL

QMember m = QMember.member;

List<Member> result = queryFactory
    .selectFrom(m)
    .where(m.username.eq("dev"))
    .fetch();
  • m.username이 실제 Member 엔티티의 프로퍼티를 기반으로 자동 생성된 Q 클래스(QMember)의 필드이기 때문에,
    username을 userame으로 잘못 작성하면 컴파일 에러가 바로 발생한다.

출처

https://www.inflearn.com/course/querydsl-%EC%8B%A4%EC%A0%84/dashboard

 

실전! Querydsl| 김영한 - 인프런 강의

현재 평점 5.0점 수강생 16,046명인 강의를 만나보세요. Querydsl의 기초부터 실무 활용까지, 한번에 해결해보세요! Querydsl을 기초부터 실무활용까지 한번에 배울 수 있습니다., 단순한 기능 설명을

www.inflearn.com