Spring Data JPA
Spring JPA [SpringBoot3.x.x] - Querydsl 적용하고 빌드하기
Stark97
2023. 8. 8. 00:38
반응형
SpringBoot3버전에서 Querydsl을 적용하는법이 2버전과 다르게 변경되었다.
1. Build.gradle을 설정한다.
- 아래와 같이 querydsl설정을 해준다.
- QClass를 만들때는 스프링부트 2.x.x처럼 compileQuerydsl로 하는게 아니라 compileJava를 실행해서 진행한다.(그냥 빌드도됨)
- 이런 이슈는 gradle은 꾸준히 업그레이드 되고있지만 querydsl은 업데이트가 되지 않아서 그런것같다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.1'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.jinan'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
// web + jpa
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// queryDsl
implementation 'com.querydsl:querydsl-core:5.0.0'
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
// database
runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'
// test
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
tasks.named('test') {
useJUnitPlatform()
}
2. 인텔리제이에서 Gradle 탭을 클릭하고 build를 하자
- 여기선 2가지 방법이있는데 Tasks -> build -> clean 후 build를 해주거나
- Tasks -> other -> compileJava를 실행한다.
- 위의 2가지 방법을 해줘야 Querydsl의 Qclass가 생성되어 사용할수가 있다.
- build 또는 compileJava를 실행시켜주면 프로젝트에 다음과 같은 폴더가 생성된다.
- 조금 살펴보자면 build -> generated -> sources -> annotationProcessor -> java -> main -> 내 프로젝트 경로 -> 엔티티가 존재하는 패키지 -> 엔티티 패키지명 -> Q엔티티 이런식으로 생성된다.
- 조금 더 추가적인 설정을 하면 Q엔티티가 생성되는 경로도 정할수있지만 이렇게 사용해도 문제가 없었다.
3. gitIgnore 설정
- gitIgnore에 Qclass형태의 엔티티들을 넣어주자
- 아래와 같이 gitignore 파일에 넣어준다.
### QEntity
src/main/generated/*
2023.08.08 - [JPA] - SpringBoot3.1 - Querydsl 사용
반응형