LazyInitializationException 왜 발생하고, 어떻게 해결할까🧐
프로젝트 하다가 만났던 LazyInitializationExceptionJPA 공부 후, 발생 원인과 해결법을 한번 정리해보고자 합니다😃 발생 원인서비스 단에 @Transactional을 붙여둔 상태에서 메서드가 종료되면 Hibernate의 Session도 함께 종료되어 영속성 컨텍스트에서 사라집니다.엔티티 객체의 속성 중, FetchType이 LAZY로 설정된 필드가 있었다면, 해당 트랜잭션 내에서, 프록시 객체로 채워진 상태일 것입니다. 이때, get을 통해 데이터를 가져오게 되면 쿼리를 통해 해당 객체를 실제 데이터로 채우게 됩니다.하지만 서비스 단에서 컨트롤러 단으로 코드 흐름이 넘어간 경우, 트랜잭션이 종료되어 영속성 컨텍스트에서 사라진 상태이므로 프록시 객체를 실제 객체로 채우지 못해 Laz..
백엔드/SpringBoot
2024. 1. 6. 20:33