조건에 따라 실행되는 쿼리가 달라지는 동적 쿼리를 사용해야하는 경우가 많은데 이를 해결할 수 있는 것이 바로 QueryDSL이다.
JPQL를 자바 코드로 작성할 수 있도록 해준다.
직접 문자열을 더해 동적 쿼리를 만들거나, JPA가 제공하는 Criteria를 사용하여 동적 쿼리를 만드는 방식은 코드가 굉장히 복잡하고 어떤 쿼리를 만들고 있는지 파악하기 쉽지않다. ==> 유지보수 매우 어려움!
먼저 QueryDSL 라이브러리를 추가한 후에 사용해야한다.
어떤 쿼리가 작성되고 있는지 한눈에 봐도 명확하게 알 수 있다. 조건문을 통해 동적 쿼리를 간편하게 생성가능!
또한, 가장 큰 장점은 만약 쿼리 작성 중 오타가 발생한다면 java 코드이기 때문에 컴파일 시점에 오류를 모두 잡아낼 수 있다
동적 쿼리가 아니라 정적 쿼리인 경우에도 다음과 같은 이유로 Querydsl을 사용하는 것이 좋다.
- 직관적인 문법
- 컴파일 시점에 빠른 문법 오류 발견
- 코드 자동완성
- 코드 재사용(이것은 자바다)
- JPQL new 명령어와는 비교가 안될 정도로 깔끔한 DTO 조회를 지원한다.
반응형
'Spring > Querydsl' 카테고리의 다른 글
순수 JPA와 Querydsl (0) | 2021.08.30 |
---|---|
중급 문법 (0) | 2021.06.29 |
기본 문법 (0) | 2021.06.18 |
Querydsl 설정 (0) | 2021.06.17 |