
QueryDSL을 사용하기 위해서 많은 시도를 했지만 여러가지 오류가 발생하였고 이를 해결했던 과정들을 담았다.
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를 붙여주었다.
디렉토리가 지정되지 않았기 때문이라고 생각되고 찾아보니 지정할 수가 있었다.
plugins {
'''
idea
}
idea {
module {
val kaptMain = file("${layout.buildDirectory}/generated/querydsl")
sourceDirs.add(kaptMain)
generatedSourceDirs.add(kaptMain)
}
}