SpringBoot 3.x.x로 오면서 2.6.x보다 세팅이 간단해졌다고한다.
3.x 버전부터 QueryDSL 플러그인을 추가하지 않아도 된다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.0'
id 'io.spring.dependency-management' version '1.1.5'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// QueryDSL Implementation
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 Build Options
*/
def querydslDir = "src/main/generated"
sourceSets {
main.java.srcDirs += [ querydslDir ]
}
tasks.withType(JavaCompile) {
options.getGeneratedSourceOutputDirectory().set(file(querydslDir))
}
clean.doLast {
file(querydslDir).deleteDir()
}


QHello가 생겼는지만 확인해두자.
generated에 생성된 Q파일은 git에서 관리하면 안된다.
gitignore에 추가하자.
def querydslDir = "src/main/generated" 현재 우리는 이 경로에서 generated를 생성했기 때문에 gitignore에 추가해야한다.우리는 위의 경로(src/)로 하였으니 설정해주자.
def querydslDir = "$buildDir/generated/quuerydsl"
강의에서는 위와 같이 설정하였기 때문에 gitignore을 안해도 된다고 한다.

이전 Spring Data JPA를 할때는 서칭을 통해 루트 페이지에 어떠한 파일을 생성해서 처리하였다.
하지만 URL을 다음과 같이 설정하면 바로 가능하다.

위와 같이 설정하면 자동으로 루트에 .db 파일이 생성된다. 일일이 생성해줄 필요가 없다.
// P6spy: JPA가 DB에 날리는 쿼리문을 보기 좋은 형태로 로그로 찍어주는 라이브러리
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'