◆ ORM/Querydsl

[QueryDSL] 💥설정

쿠키린 2024. 7. 24. 15:32

현재 페이지 : bulid.gradle

 

Spring Boot 2.x.x 버전 (설정)

plugins{
   id "com.ewerk.gradle.plugins.querydsl" version"1.0.10"
}
dependencies {
...
	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
...
}

 
두개 다 기입한 후 Import 누르면 

임폴트 해주기~

Tasks - other - compileQuerydsl이 생성된걸 볼 수 있다.
더블클릭 하면

이렇게 QHello가 생성된다.
 
 
마지막으로 맨 아래에다가 추가해주자 ( QueryDSL과 관련된 빌드와 관련된 프로세싱)

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

querydsl{
    jpa = true
    querydslSourcesDir = querydslDir
}
sourceSets {
    main.java.srcDir querydslDir
}

configurations {
    querydsl.extendsFrom compileClasspath
}

compileQuerydsl{
    options.annotationProcessorPath = configurations.querydsl
}

//querydsl 추가 끝

 
 

💡SpringBoot 3.x.x 버전 (설정)

 
 

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	
    //test 롬복 사용
	testCompileOnly 'org.projectlombok:lombok'
	testAnnotationProcessor 'org.projectlombok:lombok'


	//Querydsl 추가
	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"

	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'
}
def querydslSrcDir = 'src/main/generated'
clean {
    delete file(querydslSrcDir)
}
tasks.withType(JavaCompile) {
    options.generatedSourceOutputDirectory = file(querydslSrcDir)
}

🔽

 tasks.withType(JavaCompile)을 하고나면 build 안에 annotationProcessor 가 생성x.
->  src/main/generated 에 생성 
💥경로 인식 해결