페이지 처리와 관련해서 QueryDSL을 설정하는 도중 다음과 같은 에러가 발생했습니다. 현재 QueryDSL의 경우는 2018년을 기준으로 더이상 업데이트가 진행되고 있지 않는데요 그 사이 java는 jakarta로 변경되면서 파일명을 찾지 못하는 혼란이 발생하고 있습니다. 따라서 build.gradle
설정을 통해 이를 해결해야 합니다.
implementation 'com.querydsl:querydsl-core'
implementation 'com.querydsl:querydsl-jpa:jakarta'
annotationProcessor("com.querydsl:querydsl-apt:5.0.0:jakarta${dependencyManagement.importedProperties['querydsl.version']}:jpa") // querydsl JPAAnnotationProcessor 사용 지정
annotationProcessor("jakarta.persistence:jakarta.persistence-api") // java.lang.NoClassDefFoundError(javax.annotation.Entity) 발생 대응
annotationProcessor("jakarta.annotation:jakarta.annotation-api") // java.lang.NoClassDefFoundError (javax.annotation.Generated) 발생 대응
QueryDSL을 사용하기 위해서 build.gradle
에 다음과 같은 정보를 추가하였는데요, 위 설정으로 진행할 시 오류가 나는 경우가 존재했습니다.
이 때 다음과 같이 apt:5.0.0
끝에 jakarta
를 붙여주시면 해결 됩니다.
annotationProcessor("com.querydsl:querydsl-apt:5.0.0:jakarta")
추가적으로 Enable annotation processing
을 체크하였는지 확인해주세요!
정말 유익한 글이었습니다.