java.lang.NoClassDefFoundError: javax/persistence/Entity

Untitled·2024년 6월 13일

Spring

목록 보기
9/12

에러 이유

javax에서 jakarta 로의 변경은 Jakarta EE 9 버전부터 시작

Spring Boot와 Jakarta EE

Spring Boot 3.0부터는 Jakarta EE 9를 기반으로 하고 있으며, 따라서 javax 대신 jakarta 패키지를 사용 이는 Spring Boot 3.0이 Jakarta EE 9 이상을 필요로 한다.

기존 소스

	implementation 'com.querydsl:querydsl-jpa:5.0.0'
    implementation 'com.querydsl:querydsl-core'
    annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
    implementation 'jakarta.persistence:jakarta.persistence-api:3.0.0'
    implementation 'jakarta.annotation:jakarta.annotation-api:2.0.0'
    annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
    annotationProcessor 'jakarta.annotation:jakarta.annotation-api'

구글 검색 시 나오는

annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'

querydsl-apt 뒤에 jakarta 붙여도 에러가 계속 낫다.

implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'

querydsl-jpa 에도 붙이니까 에러 안남


query-dsl 사용

  • 결론은 이렇게 사용 중 세시간 애먹었다.
//query dsl
    implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
profile
그저 그런 꾸준히 하고만 싶은 개발자 이야기

0개의 댓글