Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- backenddeveloper
- Redis
- serverless
- Spring Boot
- CICD
- spring
- QueryDSL
- Docker
- DynamoDB
- kakao
- codebuild
- jpa
- 오블완
- s3
- goorm
- MSA
- 티스토리챌린지
- aws
- 백엔드
- mapping
- ec2
- 자격증
- 개발자
- backend
- orm
- 스터디
- codedeploy
- rds
- CodeCommit
- sqs
Archives
- Today
- Total
gony-dev 님의 블로그
[Querydsl] 초기 설정하기(Spring boot 3.x.x 이상) 본문
🔥 Querydsl란?
- 스프링 부트 + 스프링 데이터 JPA만으로 해결할 수 없는 복잡한 쿼리나 동적 쿼리들을 다루고 발생하는 문제들을 해결하기 위해 Querydsl을 사용한다!
- 쿼리를 자바 코드로 작성하여 문법 오류를 컴파일 시점에 잡아준다!
- 특징
- 동적 쿼리 문제 해결
- 쉬운 SQL 스타일 문법으로 쉽게 학습도 가능하다.
🔥 Querydsl 초기 세팅
- 이제 Querydsl를 사용하기 위해 필요한 기본 세팅들을 살펴보자!
- Querydsl은 Spring boot 프로젝트 생성 시 지원되는 라이브러리가 아니기 때문에 build.gradle에 직접 추가해 주어야 한다.
//build.gradle
dependencies{
// Querydsl 추가 (Spring boot 3.x 이상)
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
tasks.named('test') {
useJUnitPlatform()
}
// querydsl 추가 시작
def querydslDir = "src/main/generated"
sourceSets {
main.java.srcDir querydslDir
}
tasks.withType(JavaCompile).configureEach {
options.getGeneratedSourceOutputDirectory().set(file(querydslDir))
}
clean.doLast {
file(querydslDir).deleteDir()
}
// querydsl 추가 끝
🔥 QClass 생성 및 삭제
생성
- 생성과 삭제 작업은 버튼 클릭만으로 완료할 수 있다!
- Hello라는 엔티티를 생성하고 QHello를 만들기 위해 QClass를 생성하자.
- Gradle -> Tasks -> other -> compileJava를 차례대로 실행해보자.
- 순서대로 작업을 완료할 시 gradle에 설정한 경로인 src/main/generated에 QClass가 생성된다!
삭제
- 삭제는 Gradle -> Task -> build -> clean을 실행하기만 하면 QClass의 경로에 있는 디렉토리와 파일이 모두 삭제된다.
- 이때 주의할 점은 src/main/generated는 개발할 때 편의를 위해 사용되는 경로이므로, 실제 배포를 할 때 QClass들이 build 디렉터리의 entity와 같은 경로에 포함되기에 Docker와 같은 컨테이너에 generated 디렉토리를 COPY해서 넣을 필요는 없다.
🔥 Querydsl 검증하기
- Test Class에서 두 가지의 경우가 정상 작동하는지 살펴보기 위해 간단한 테스트 코드를 작성하였다.
- Querydsl Q타입이 정상 작동하는가?
- lombok이 정상 작동하는가?
- 이렇게 querydsl의 초기 설정과 검증에 대해 실습해보고 알아보았다.
- 다음 시간에는 entity를 생성하고 이를 querydsl과 연동하면서 기본 문법들을 알아보도록 하겠다!
감사합니다~
'Querydsl' 카테고리의 다른 글
[Querydsl] 스프링 데이터 JPA가 제공하는 Querydsl 기능 (1) | 2024.12.24 |
---|---|
[Querydsl] 스프링 데이터 JPA와 Querydsl (0) | 2024.12.21 |
[Querydsl] 순수 JPA와 Querydsl (1) | 2024.12.09 |
[Querydsl] 중급 문법 (2) | 2024.12.03 |
[Querydsl] 기본 문법 (0) | 2024.11.25 |