Querydsl

윤준혁·2024년 5월 20일
1

Querydsl이란?

  • 하이버네이트 쿼리 언어의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임워크
  • 정적 타입을 이용해 SQL과 같은 쿼리를 생성하게 해줌
  • Spring Boot와 Spring Data JPA를 함께 사용할 때, 복잡한 쿼리, 동적 쿼리를 구현하는 한계를 해결할 수 있음

JPQL과 Querydsl 비교

JPQL

String username = "java";
String jpql = "select m from Member m where m.username = :username";

List<Member> result = em.createQuery(query, Member.class).getResultList();

JPQL의 문제점

  1. 타입 안정성이 떨어짐
  2. 직관적인 동적 쿼리 작성이 어려움
  3. JPQL은 문자열임(문법이 틀려도 개발자가 알아차리기 쉽지 않음)

Querydsl

String username = "java";

List<Member> result = queryFactory
        .select(member)
        .from(member)
        .where(usernameEq(username))
        .fetch();
출처: https://ittrue.tistory.com/292 [IT is True:티스토리]

Querydsl 장점

  • 문자가 아닌 코드로 쿼리를 작성할 수 있어 컴파일 시점에 문법 오류를 확인할 수 있음
  • 인텔리제이와 같은 IDE의 자동 완성 기능의 도움을 받을 수 있음
  • 복잡한 쿼리나 동적 쿼리 작성이 편리
  • 쿼리 작성 시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있음
  • JPQL 문법과 유사한 형태로 작성할 수 있어서 쉽게 적응 가능

0개의 댓글

관련 채용 정보