Querydsl이란 JPQL 빌더를 말하며, 문자열이 아닌 코드로 쿼리를 작성할 수 있어 다양한 이점이 있다.
그렇다면 먼저 JPQL이 무엇인지 알아보자.
Spring Data JPA가 기본적으로 제공해주는 CRUD 메서드 및 쿼리 메서드 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 필연적으로 JPQL을 작성하게 된다.
간단한 로직을 작성하는데 큰 문제는 없으나, 복잡한 로직의 경우 개행이 포함된 쿼리 문자열이 상당히 길어진다.
JPQL 문자열에 오타 혹은 문법적인 오류가 존재하는 경우, 정적 쿼리라면 어플리케이션 로딩 시점에 이를 발견할 수 있으나 그 외는 런타임 시점에서 에러가 발생한다.
코드
로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류
를 쉽게 확인할 수 있다.자동 완성
등 IDE의 도움을 받을 수 있다.동적인 쿼리
작성이 편리하다.메서드 추출
을 통해 재사용할 수 있다.