-> 블로그 이전

[QueryDSL] QueryDSL 기본 설정

2022. 8. 26. 15:50Language`/JPA

1) build.gradle 의존성 추가

dependencies {
    ...
    ...

	//Querydsl 추가
	implementation 'com.querydsl:querydsl-jpa'
	annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jpa"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
querydsl-jpa = QueryDSL의 JPA 라이브러리
querydsl-apt = QueryDSL에서 사용할 "쿼리 타입(Q)"를 생성할 때 필요한 라이브러리
jakarta.annotation-api = java.lang.NoClassDefFoundError(javax.annotation.Entity) 발생 대응 
jakarta.persistence-api = java.lang.NoClassDefFoundError (javax.annotation.Generated) 발생 대응

→ querydsl-apt가 [@Entity, @Id, ..]와 같은 Annotation을 인식할 수 있기 위해서 javax.annotation, javax.persistence라는 annotationProcessor를 추가해주는 것이다

>> IntelliJ IDEA에서는 빌드 방식(Gradle / IntelliJ)에 따라서 QueryDSL Annotation Processor생성하는 QueryType 생성물의 위치가 변경된다

 

2-1) Gradle Build

위와 같이 설정하고 "Build Project"를 통해서 프로젝트를 빌드하면 QueryDSL에서 필요한 QueryType의 생성물이 다음 위치에 생성된다

QType이 생성되는 위치는 원래 Entity들이 위치한 Path와 정확하게 일치되도록 생성된다

 

 

2-2) IntelliJ Build

이번에는 Gradle이 아닌 "IntelliJ IDEA"로 빌드를 해보자

이번에는 build directory가 아닌 src/main의 "generated"라는 디렉토리에 QType이 생성됨을 확인할 수 있다