728x90
    
    
  반응형
    
    
    
  QueryDSL 설정
QueryDSL 을 설정하다 보면 에러가 발생할 때가 있다.
이를 바탕으로 한방에 설정한 스크립트를 공유해본다.
 
QueryDSL 추가
- 아래 설정 값을 추가해 준다.
- 뒤에 jakarta 를 추가해준 부분이 있는데 javax 와 혼용되어 사용될 경우 에러가 나기 때문에 설정을 해주었다.
// queryDSL
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:3.1.0"
// 테스트 코드를 위한 DB 설정
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2' 
 
QClass 경로 설정
- QClass 경로를 커스텀해주어 경로를 지정한다.
- 경로를 지정해주지 않아도 잘 될때가 있지만 빌드가 안되면 경로지정을 해줘야 한다.
def querydslGeneratedDir = project.hasProperty('querydsl.generated.dir') ?
		project.property('querydsl.generated.dir') : "$buildDir/generated/querydsl"
// 소스셋 설정: Java 소스와 QClass 파일이 생성되는 디렉토리 경로 포함
sourceSets {
	main {
		java {
			srcDirs = ['src/main/java', querydslGeneratedDir]
		}
	}
}
// QClass 생성 후, 해당 경로를 설정하는 작업
compileJava {
	options.annotationProcessorPath = configurations.annotationProcessor
	options.compilerArgs = ['-processor', 'com.querydsl.apt.jpa.JPAAnnotationProcessor']
} 
 
Clean 후 Build 를 해준다.
성공적으로 빌드가 되었다

 
 
전체 스크립트
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.4.0'
	id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(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'
	implementation 'org.springframework.boot:spring-boot-starter-webflux'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'io.projectreactor:reactor-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
	// queryDSL
	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:3.1.0"
	// 테스트 코드를 위한 DB 설정
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'com.h2database:h2'
}
def querydslGeneratedDir = project.hasProperty('querydsl.generated.dir') ?
		project.property('querydsl.generated.dir') : "$buildDir/generated/querydsl"
// 소스셋 설정: Java 소스와 QClass 파일이 생성되는 디렉토리 경로 포함
sourceSets {
	main {
		java {
			srcDirs = ['src/main/java', querydslGeneratedDir]
		}
	}
}
// QClass 생성 후, 해당 경로를 설정하는 작업
compileJava {
	options.annotationProcessorPath = configurations.annotationProcessor
	options.compilerArgs = ['-processor', 'com.querydsl.apt.jpa.JPAAnnotationProcessor']
}
tasks.named('test') {
	useJUnitPlatform()
} 
 
 
728x90
    
    
  반응형
    
    
    
  'DataBase > JPA' 카테고리의 다른 글
| [QueryDSL] QueryDSL 설정 3 - DataSource (0) | 2024.11.26 | 
|---|---|
| [QueryDSL] QueryDSL 설정2 - Mysql 연동 (0) | 2024.11.25 | 
| [JPA] AttributeConverter (0) | 2022.04.02 | 
| [JPA] JPA의 설정 옵션들 (0) | 2022.01.26 | 
| [JPA] JPQL Named 쿼리 (0) | 2021.09.28 | 
 
		
	
                
                
                
                
                
                
                
                                                
                
                
                
 
										
									 
										
									
댓글