원인
지연로딩을 사용한 경우, 트랜잭션이 닫혀있을 때 프록시를 초기화하였을 시 발생하는 오류다.
트랜잭션 밖에서(영속성 컨텍스트가 종료된 상태) 프록시를 초기화하여서 발생.
JPA에서 지연로딩을 하려면 항상 영속성 컨텍스트가 있어야 한다.
해결방법
1. FetchType.LAZY을 FetchType.EAGER로 바꾸기 => JPA 사용시 LAZY는 필수이므로 권장 X
2. @Transaction을 사용해 같은 트랜잭션으로 묶어주기
3. @EntityGraph를 사용하여 해당 속성을 페치조인하여 선 프록시 초기화
'오류 해결' 카테고리의 다른 글
Java Mysql 연동 시 오류 발생 : java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed (0) | 2023.02.13 |
---|---|
java.lang.StackOverflowError: null - @Data (0) | 2023.01.11 |
[Spring Boot] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 에러 (0) | 2022.12.20 |
깃 오류 (0) | 2022.11.01 |
인터셉터 등록 후 부트스트랩 적용이 안 되는 문제 (0) | 2022.08.10 |