QueryDSL 이해하기

딩딩당당·2023년 3월 14일
0

QueryDSL

Sptring Data JPA가 제공해주는 CRUD 메서드 및 쿼리 메서드 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 JPQL을 작성하는 경우도 있다. 간단한 로직을 작성하는데 큰 문제는 없으나, 복잡한 로직의 경우 개행이 포함된 쿼리 문자열이 길어질 수 있다. JPQL문자열에 오타 혹은 문법적인 오류가 발생했을 때, 정적 쿼리라면 application 로딩 시점에 이를 발견할 수 있으나 그 외에는 RunTime 시점에서 에러가 발생한다.

이러한 문제들은 어느정도 해소해주는 것이 QueryDSL이다. QueryDSL을 사용했을 때의 장점은 다음과 같다.

  1. 문자가 아닌 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 확인할 수 있다.
  2. 자동 완성 등 IDE의 도움을 받을 수 있다.
  3. 동적인 쿼리 작성이 편리하다.
  4. 쿼리 작성 시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있다.

QueryDSL을 적용하려면 설정이 까다롭다는 단점이 있긴 하지만, 설정 이후의 리턴을 생각하면 나쁘지 않다고 생각된다. 설정 방법은 참고한 블로그에서 확인할 수 있다.
https://tecoble.techcourse.co.kr/post/2021-08-08-basic-querydsl/

profile
자바공부해요흑흑

0개의 댓글