QueryDsl

쿼리를 자바코드로 작성할 수 있게 도와주는 기술이다.

사용하는 대표적인 이유는 자바코드로 작성하기 때문에 문법오류를 컴파일 시점에 잡아준다는 점이다.

QueryDsl 을 공부하며 보기 좋은 영상

https://www.youtube.com/watch?v=zMAX7g6rO_Y&list=WL&index=2&t=108s

감사합니다 (__)

1. extends / implements 사용하지 않기

ggqq.PNG

일반적으로 QueryDsl을 사용하기 위해선 다음과 같이 복잡한 인터페이스 생성 및 상속 관계가 필요하다. 이는 코드의 복잡도를 올리는데 사실 JPAQueryFactory만 있다면 extends / implements 없이도 문제 없이 사용할 수 있다.

(프로젝트에선 파일이 많지도 않고, 공부에 의의를 두어 위의 사진처럼 관계를 설정하여 사용하였다.)

2. 동적 쿼리는 BooleanExpression

Before은 코드 구현을 목표로만 생각하여 짠 코드이기에 규칙도 없고, UserRepository인데 Product Table까지 직접 손댄다..

이런 괴상한 짓을 Refactoring하였고, 거기에 더해 BooleanExpression을 이용하여 조건절에 들어갈 조건을 메서드화 시켜 쿼리를 한눈에 예측하기 쉽게 Refactoring 하였다.

Before