[Spring] QueryDsl (feat. Pageable)

조진우·2022년 10월 31일
0

Spring

목록 보기
2/4
post-thumbnail

자바 스터디 친구들과 각자 진행했던 프로젝트에 대한 발표를 진행했다. 유익한 시간이었고, 나는 프로젝트에서 사용했던 QueryDsl 적용에 대한 발표를 진행했다. 겸사겸사 블로그에 QueryDsl에 대한 업데이트를 해본다.


💡 QueryDsl? 동적쿼리?


  • QueryDsl: 쿼리를 자바 코드 기반으로 작성하게 도와주는 기술이다.
  • 동적쿼리 : 상황에 따라 다른 문법의 SQL을 적용하는 것을 말한다.



💡 QueryDsl은 왜 필요할까?


  • 자바 코드로 작성하기 때문에 문법 오류를 컴파일 시점에 발견이 가능하다. (Native Query의 경우 발견 못함)
  • Spring Data JPA 등으로 해결하지 못하는 복잡한 쿼리/동적 쿼리 등이 해결 가능하다.

나의 경우에는 프로젝트에서 다음 아래와 같이 3가지 조건이 동시에 만족하는 게시물을 조회하는 기능이 필요했다.




💡 QueryDsl 사용방법 3가지


  1. QuerydslRepositorySupport 상속받아 사용

  2. JpaRepistory에서 Querldsl 사용 가능하도록 설정하여 사용 (내가 사용한 방법)

  3. 상속 구현없이 Querydsl만 사용



💡 QueryDsl 구현 방법


  1. Gradle 설정 : https://data-make.tistory.com/728

  2. QueryDsl Configuration : 아래 설정으로 프로젝트 어디에서나 JPAQueryFactory를 주입받아 QueryDsl 사용가능






참고자료


[Gradle 설정] https://data-make.tistory.com/728
[QueryDsl 적용 방법 3가지] https://batory.tistory.com/496
[QueryDsl pageable 적용] https://batory.tistory.com/55
[다이나믹 쿼리 사용하기] https://jojoldu.tistory.com/394
[QueryDsl 코드 작성 참고] https://jaehoney.tistory.com/185

profile
The Top of Iceblog

0개의 댓글

관련 채용 정보