Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
특정 버전 이상에서 해당 규격에 대한 검증을 시작한 듯 하다.
가령 Vendor라는 Entity가 있는데, onetomany로 두개의 자식 속성을 지정 후, 둘다 fetchtype을 eager로 지정하면 나는 오류다.
@Entity...
public class Vendor ...{
....
@OneToMany(mappedBy = "vendor", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Employee> employees;
@OneToMany(mappedBy = "vendor", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Customer> customers;
....
}
Hibernate가 이 경우 얼마나 sql 만들려면 힘들 겠냐..특히 두개 이상이 된다면 더..
그러니 Lazy 로 변경하자. 물론 몇가지 해결책은 있다.
@LazyCollection(LazyCollectionOption.FALSE)
또는
@IndexColumn(name = "id")
또는
@Fetch(FetchMode.SELECT)
그래도 성능적으로나 뭐로나 굳이 저런 어노테이션 남기는 것보다는 fetchType.LAZY를 써서 풀어주자.