Framework/Spring🌱

JPA [QueryDSL] 설정하기

개발자겨려 2025. 4. 23. 19:15

아래와같이 build.gradle 파일 설정

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.4.4'
	id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.test'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

// QueryDSL Q파일 생성 디렉토리
def querydslDir = "$buildDir/generated/querydsl"

sourceSets {
	main {
		java {
			srcDirs += querydslDir
		}
	}
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	// Spring Boot
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	implementation 'org.springframework.boot:spring-boot-starter-web'

	// Lombok
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'

	// MySQL
	runtimeOnly 'com.mysql:mysql-connector-j'

	// QueryDSL (Jakarta API 기반)
	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'

	// Test
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.withType(JavaCompile).configureEach {
	options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
}

compileJava.dependsOn(processResources)

tasks.named('test') {
	useJUnitPlatform()
}

 

 

 

// QueryDSL Q파일 생성 디렉토리
def querydslDir = "$buildDir/generated/querydsl"

이설정으로 인해 빌드 후에 build\generated\querydsl 경로에 QMemberProfile 파일이 생성된다.

QMemberProfile 생성됨.