inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

간단한 주문 조회 V1: 엔티티를 직접 노출

SpringBoot4 버전 Hibernate5JakartaModule 라이브러리 오류

2

devwj20

작성한 질문수 2

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

강의 스크립트 Hibernate5JakartaModule 호출시 에러가 발생하여 확인 차 문의드립니다.ㄴ>

om.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule Unable to get public no-arg constructor

 

스프링부트 버전 문제인 것으로 판단하여 프로젝트의 스프링부트 버전확인시 4.1.0 버전으로 실행하였고 해당 버전에서 라이브러리와 클래스 변경이 있는 것 같아 질문 남깁니다.

 

    // Hibernate5jakarta
//  implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta'
//  -> 변경
    // Hibernate7Module
    implementation 'tools.jackson.datatype:jackson-datatype-hibernate7'
package jpabook.jpashop;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import tools.jackson.datatype.hibernate7.Hibernate7Module;

@SpringBootApplication
public class JpashopApplication {

    public static void main(String[] args) {
       SpringApplication.run(JpashopApplication.class, args);
    }

//  @Bean
//  Hibernate5JakartaModule hibernate5Module() {
//     Hibernate5JakartaModule hibernate5JakartaModule = new Hibernate5JakartaModule();
////       // 강제 지연 로딩 설정
//     hibernate5JakartaModule.configure(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING, true);
//     return new Hibernate5JakartaModule();
//  }
// ㄴ 변경
    @Bean
    Hibernate7Module hibernate7Module() {
       Hibernate7Module hibernate7Module = new Hibernate7Module();
       // 강제 지연 로딩 설정
//     hibernate7Module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true);
       return hibernate7Module;
    }

}

 

java spring spring-boot jpa

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이원준님.

현재 Spring Boot 4.1.0 버전을 사용하고 계신다고 하셨는데, 기존의 Hibernate5JakartaModule이 정상적으로 동작하지 않는 문제를 겪고 계신 것 같습니다. 이 문제는 버전 변경에 따라 발생할 수 있습니다. 해결에 도움이 될 만한 몇 가지 내용을 제공드리겠습니다.

문제 원인

Hibernate5JakartaModule은 기본적으로 Hibernate 5와 Jakarta EE 환경에 맞춰 설계된 모듈입니다. Spring Boot 및 Hibernate의 버전이 변경되면서 호환 모듈의 업데이트가 필요하게 되었습니다.

해결책

  1. Jackson Datatype - Hibernate7 Module 사용:
    최신 Hibernate 버전과 관련해서 Hibernate7Module을 사용하시는 방법은 적절합니다. 이 모듈은 Hibernate 7과 호환되며, 강제 지연 로딩을 지원합니다.

새로운 모듈을 적용하기 위해서는 아래와 같이 코드를 수정하시면 됩니다:

   @Bean
   Hibernate7Module hibernate7Module() {
       Hibernate7Module hibernate7Module = new Hibernate7Module();
       // 필요한 강제 지연 로딩 설정
       // hibernate7Module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true);
       return hibernate7Module;
   }
  1. 버전 호환성 체크:
    명확한 해결을 위해서는 사용하고 있는 라이브러리의 호환성을 반드시 체크해야 합니다. 특히, Spring Boot와 Hibernate의 버전이 서로 맞지 않으면 다양한 에러가 발생할 수 있습니다.

  2. 관련 자료:
    아래 답변에서는 여러 사용자들이 비슷한 문제를 어떻게 해결했는지를 보여주고 있습니다. 추가적으로 확인해 보시면 힌트를 얻으실 수 있을 것입니다.

추가적으로 강의 자료 및 업데이트된 내용을 확인하시고, 궁금하신 점은 커뮤니티나 강의의 Q&A에 공유해 주세요. 문제를 해결하는 데에 큰 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.

0

56

3

강의 관련 외 질문입니다.

0

97

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

2

118

1

BeanCreationException

0

105

3

Update 후 UpdateMemberResponse 매핑할 때

0

68

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

119

2

페이징 + 검색조건 관련해서 질문드립니다.

0

83

1

Query Dsl Q파일 질문입니다.

0

99

1

루트 쿼리라는것은

0

73

1

메서드를 분리하는 기준

0

81

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

135

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

112

2

fetch join과 영속화와 OSIV의 관계

0

109

2

Distinct 사용 전 결과에 대한 의문

0

130

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

71

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

93

2

dto 필드 속 엔티티 여부

0

75

1

뷰템플릿 사용 시

0

91

2

Result 클래스 관련 질문

0

64

1

@PostConstruct 프록시 관련 질문드립니다

0

95

1

DTO 대신 Form 사용은 안되나요?

0

146

1

OSIV ON 상태일 때

0

105

1

fetch join VS fetch join 페이징 궁금증

0

203

2

양방향 연관관계 알아보는 법?

0

117

1