-
Spring - LazyInitializationException: could not initialize proxy – no SessionSpring 2022. 9. 20. 01:32반응형
JPA를 쓰다보면 이런 에러메시지를 볼 때가 있습니다.
에러메시지
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.example.domain.CompanyEntity.personList, could not initialize proxy - no Session
Entity 코드
@Entity @Table(name = "company") public class Company implements Serializable { @Id @Column(name = "id") private Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "company", cascade = CascadeType.REMOVE) @Where(clause = "del_yn = 'N'") private List<Person> personList; }
select한 entity가 영속성 컨텍스트 내에 존재하지 않아서 발생한 에러입니다.
한 트랜잭션 안에 해당 entity가 존재하지 않는다는 의미입니다.
해결방법
1. lazy loading(FetchType.LAZY)을 FetchType.EAGER 로 바꾸는 방법 (성능이 떨어지므로 추천하지 않음)
2. @Transactional 어노테이션을 써서 한 트랜잭션 내에 처리하도록 한다.
반응형'Spring' 카테고리의 다른 글
Spring - JPA @OneToMany java.lang.StackOverflowError: null (0) 2022.11.04 Spring - JPA cannot simultaneously fetch multiple bags (0) 2022.11.04 Spring - static 변수에 @Value 어노테이션 적용 (0) 2022.09.05 Spring - 스프링 부트 PID 파일 생성하기 (0) 2022.07.18 Spring - InvalidDataAccessApiUsageException: No enum constant 에러 (0) 2022.07.13