[Sping] JPA/ could not initialize proxy - no Session

박진서·2023년 7월 9일
0

Spring

목록 보기
13/13

왜 발생하는가?

  • 영속성 컨텍스트의 생명주기와 프록시에 대한 이해 부족
  • Lazy Loading으로 연관된 객체는 바로 초기화 되지 않고 필요할 때 정보가 채워지는 프록시 객체로 채워진다.
  • 서비스단에서 트랜잭션이 일어나도록 설정이 되어있는데, JPA의 영속성 컨텍스트는 보통 트랜잭션과 생명주기를 같이한다. 컨트롤러 단으로 나오면서 영속성 상태가 끝나기 때문이다.

해결 방법

  1. DTO 변환을 컨트롤러 단에서 서비스 단으로 변경
  2. 지연로딩에서(LAZY)에서 즉시로딩(EAGER)로 변경한다. (비추천)
profile
백엔드 개발자

0개의 댓글