-
Spring - JPA cannot simultaneously fetch multiple bagsSpring 2022. 11. 4. 19:16반응형
Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
하나의 entity에 한개 이상의 FetchType.EAGER 를 사용할 때 발생합니다.
@Entity public class Person { @OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) private List<Phone> phoneList; @OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) private List<Car> carList; }
@OneToMany 속성을 EAGER로 여러개를 할 경우 MultipleBagFetchException이 발생합니다.
해결방법은
1.
FetchType.LAZY로 바꾼다.
@OneToMany(fetch = FetchType.LAZY, mappedBy = "person", cascade = CascadeType.REMOVE) private List<Car> carList;
2.
List를 Set으로 바꾼다.
@OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) private Set<Car> carList;
3.
@Fetch(value = FetchMode.SUBSELECT)
@OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) @Fetch(value = FetchMode.SUBSELECT) private List<Car> carList;
반응형'Spring' 카테고리의 다른 글
Spring - JPA Executing an update/delete query 에러 (0) 2023.10.17 Spring - JPA @OneToMany java.lang.StackOverflowError: null (0) 2022.11.04 Spring - LazyInitializationException: could not initialize proxy – no Session (1) 2022.09.20 Spring - static 변수에 @Value 어노테이션 적용 (0) 2022.09.05 Spring - 스프링 부트 PID 파일 생성하기 (0) 2022.07.18