본문 바로가기

dev/JPA

Spring Boot JPA QueryDSL

스프링 부트에서 JPA를 사용할 때 복잡한 검색 쿼리를 작성하는 방법이 여러 가지가 있는데

 

그중에서 QueryDSL을 사용하는 방법입니다.

 

QueryDSL 라이브러리 추가

 

pom.xml에 QueryDSL 라이브러리들을 추가합니다.

 

QueryDSL 버전 확인

 

QueryDSL 디펜던시 버전 정보를 확인합니다.

 

메타 모델 클래스 생성 플러그인 추가

 

엔티티의 메타 모델 클래스를 생성하는 플러그인을 pom.xml에 추가합니다.

 

메타 모델 클래스 생성 확인

 

mvn compile을 하면 outputDirectory에 메타 모델 클래스가 생성됩니다.

 

예제 코드

 

예제 코드를 보게 되면

 

직원 엔티티가 팀 엔티티와 직급 엔티티와 join 하고

 

employeeSearchParam의 아이디와 직원 엔티티의 아이디가 같은 데이터를 조회하고 있습니다.

 

JPQL은 문자열 기반이어서 오타로 인해 예외가 발생할 수 있고

 

Creteria는 코드 기반이지만 코드가 복잡하다는 단점이 있기 때문에

 

이 둘의 단점을 보완한 QueryDSL을 많이 사용하고 있습니다.

 

해당 글에 대한 정보는 김영한 님의 JPA 프로그래밍 도서를 참고했습니다.

https://lib.seoul.go.kr/search/detail/CATTOT000000775417

 

상세정보 | 서울도서관

공유할 sns 선택하기 카카오톡 공유하기 네이버로 공유하기 트위터로 공유하기 페이스북 공유하기 카카오스토리 공유하기 --> URL 공유하기 복사 표지보기 상세보기 MARC보기 책꽂이에 저장 상세

lib.seoul.go.kr

 

'dev > JPA' 카테고리의 다른 글

JPA ID SEQUENCE  (0) 2023.08.30
JPA Infinite Recursion 예외 처리  (0) 2023.08.29
Spring Boot JPA ID IDENTITY  (0) 2023.08.28
Spring Boot JPA Join  (0) 2023.08.28
Spring Boot JPA 복합키  (0) 2023.08.24