[KoPring] Kotlin + Spring 3.0이상 QueryDSL 환경 구성

Sihwan Kim·2024년 2월 23일

KoPring

목록 보기
3/10
post-thumbnail

QueryDSL을 사용하기 위해서 많은 시도를 했지만 여러가지 오류가 발생하였고 이를 해결했던 과정들을 담았다.

마주친 상황

1. javax와 관련된 문제 (가장 많이 발생)

Java.lang.NoClassDefFoundError (javax.annotation.Entity / javax.annotation.Generated)

이런 에러가 발생한다면 아마 jakarta를 사용하고 있을 가능성이 크다.
javax가 jakarta로 변경되면서 오류가 자주 발생한다. queryDSL에서 이를 해결하기 위해 아래와같은 코드를 추가해주었다.

kapt {
	javacOptions {
		option("querydsl.entityAccessors", true)
	}
	arguments {
		arg("plugin", "com.querydsl.apt.jpa.JPAAnnotationProcessor")
	}
}

또한

dependencies {
	//querydsl
	implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
	kapt("com.querydsl:querydsl-apt:5.0.0:jakarta")
}

의존성 추가에서 :jakarta를 붙여주었다.

2. QClass가 생성되지 않는 문제

디렉토리가 지정되지 않았기 때문이라고 생각되고 찾아보니 지정할 수가 있었다.

plugins {
'''
	idea
}

idea {
	module {
		val kaptMain = file("${layout.buildDirectory}/generated/querydsl")
		sourceDirs.add(kaptMain)
		generatedSourceDirs.add(kaptMain)
	}
}

생각보다 jakarta문제, kotlin문제 등등 자료가 별로 없네요🤣🤣

0개의 댓글