JPA ToOne 관계 초기화 방법 vs 컬렉션 초기화 방법 (강제 초기화 되지 않는 문제 해결)
2021.08.27
들어가기 전 기본적으로 배치 사이즈를 조절해서 컬렉션을 조회할 때, In 쿼리로 최적화를 했다고 가정하고 코드를 짰습니다. 깃허브에 올린 소스는 default_batch_fetch_size 옵션으로 최적화를 했습니다. 참고 부탁드립니다. JPA 의 로딩 전략 JPA 에서 연관관계를 맺을 때, 기본적으로 Lazy 로딩을 사용 합니다. fetch = FetchType.LAZY 만약 EAGER 로딩을 사용한다면 Jpql 을 사용할 때 예상하지 못한 쿼리가 나가는 문제가 발생합니다. 따라서 기본적으로 Lazy 로딩으로 세팅을 한 뒤에 성능 최적화를 시작합니다. 한편, Open In View 옵션을 true 로 해두었다면, JPA 영속성 관리를 벗어난 시점에도 트랜젝션을 끊지 않기 때문에 Lazy 로딩으로 인해,..