[Spring] java.lang.NoClassDefFoundError: javax/persistence/Entity

건도리 ·2023년 7월 20일
2

Spring

목록 보기
9/12
post-thumbnail

개요

페이지 처리와 관련해서 QueryDSL을 설정하는 도중 다음과 같은 에러가 발생했습니다. 현재 QueryDSL의 경우는 2018년을 기준으로 더이상 업데이트가 진행되고 있지 않는데요 그 사이 java는 jakarta로 변경되면서 파일명을 찾지 못하는 혼란이 발생하고 있습니다. 따라서 build.gradle 설정을 통해 이를 해결해야 합니다.

jakarta

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을 체크하였는지 확인해주세요!

profile
배움이 즐거워요 ! 함께 그 즐거움을 나눴으면 좋겠습니다 :)

3개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 유익한 글이었습니다.

답글 달기
comment-user-thumbnail
2024년 6월 22일

감사합니다.

답글 달기
comment-user-thumbnail
2024년 6월 22일

와.. 2시간동안 고민했는데 정말 감사합니다

답글 달기