미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
LazyInitializationException 관련 질문
강사님 덕분에 강의 열심히 들으면서 방학을 알차게 보내고 있습니다!
다만 이번 강의는 좀 어려웠던지 오류가 발생해서 처음으로 질문드립니다.
다른 질문도 찾아보고 구글링을 해서 왜 오류가 생기는지는 알았는데 정확하게 어떻게 해결하고 방지해야할지 몰라서 질문드려요.
강의 : 주문목록 조회 및 취소
발생상황: orders를 조회 후 템플릿에 넘기는 상황
오류메시지:
오류 원인 추정(디버깅): Transacitonal인 서비스에서 객체가 Lazy 객체는 따로 조회하지 않아 해당 값은 null또는 지연연결로 인해 값이 없어서 나타나는 현상이라고 이해했습니다. 구글링 검색으로는 컨트롤러에서는 transactional이 걸려있지 않아 서비스에서 섹션이 종료되어 컨트롤러에서는 따로 영속성객체를 조회할수 없다고 이해했는데 맞는지는 잘 모르겠습니다 ㅜㅜ
질문
1. 제 짧은 소견으로는 엔티티 구성상 당연하게 LazyInitializationException이 나타날 수 밖에 없게 설계가 된 것같은데 강사님은 예제에서 이런 오류가 안나오더라구요. 왜 제 파일에서는 이러한 예외가 나왔는지 알고싶습니다.
2. LazyInitializationException의 해결방법(설계 지향점)을 알고싶습니다.
3. 제가 뭘 빼놓고 적은줄 알고 소스파일을 싹다 예제파일로 바꿨는데도 오류가 났는데 이상하게 리소스파일을 전부 바꾸니까 정상 작동했습니다. 위에 나온 디버깅상황에서는 설계 구성상 미스인줄 알았는데 템플릿파일에서 문제가 있는 것처럼 나오니까 뭐가 맞는지 잘 모르겠습니다. ㅜㅜ
여태 들은 강의는 Spring 핵심 기본 / MVC 1편 / 실용 JPA 1편 들었습니다.