


Hibernate MultipleBagFetchException: SessionFactory 생성 중 Eager Fetching 문제를 해결하는 방법은 무엇입니까?
Hibernate: SessionFactory 생성 중 MultipleBagFetchException 수정
Hibernate를 사용할 때 SessionFactory 생성 중 예외가 발생할 수 있습니다.
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
이 문제는 일반적으로 여러 컬렉션을 가져올 때 발생합니다. 엔터티 내에서 FetchType.EAGER를 사용하여 엔터티를 열심히 검색합니다. 이로 인해 성능 문제, 데이터 불일치 및 메모리 오버헤드가 발생할 수 있습니다.
테스트 사례:
다음 예를 고려하세요.
@Entity public class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "parent", fetch = FetchType.EAGER) private List<child> children; } @Entity public class Child { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne private Parent parent; }</child>
In 이 경우 Parent.children을 가져오는 것은 여러 하위 컬렉션을 동시에 가져오려고 열심히 시도하여 예외.
잠재적 해결 방법:
1. FetchType.EAGER 제거:
Parent.children 매핑에서 FetchType.EAGER를 제거합니다. 이는 필요할 때 Hibernate가 아이들을 게으르게 가져와 예외를 해결하게 할 것입니다. 다만, 성능에 영향을 미칠 수 있습니다.
2. LazyCollection:
FetchType.EAGER를 사용하는 대신 @LazyCollection(LazyCollectionOption.FALSE)으로 하위 필드에 주석을 답니다. 이는 Hibernate가 컬렉션을 열심히 로드하도록 지시하지만, 지연 초기화 프로세스를 통해 예외를 피합니다.
3. Set 사용:
대부분의 경우 Set
주의:
세트를 사용해도 근본적인 데카르트 곱 문제가 제거되지는 않습니다. Vlad Mihalcea가 논의했습니다. 그러나 일반적으로 이는 더 나은 접근 방식이며 성능을 향상시킬 수 있습니다.
위 내용은 Hibernate MultipleBagFetchException: SessionFactory 생성 중 Eager Fetching 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Java 프로젝트에서 Java 캐시 데이터를 얻을 수없는 이유에 대한 분석 및 최적화 솔루션은 빠른 액세스를 위해 많은 양의 데이터를 메모리로 캐시하는 것이 일반적입니다 ...

심층적 인 Java : 탐험 할 가치가있는 가상 기계 세계. 많은 Java 개발자들은 기본 구문과 일반적으로 사용되는 프레임 워크를 마스터 한 후 기술을 더욱 향상시키기를 희망합니다 ...

병합 된 셀을 EasyExcel로 채울 때 자주 묻는 질문 ...

시스템 도킹의 필드 매핑 문제 및 솔루션. 시스템 도킹 프로세스 중에는 종종 한 시스템의 인터페이스 필드를 다른 시스템에 맵핑해야 할 필요성이 있습니다 ...

SpringBoot 응용 프로그램에서 PGJDBC 연결 풀이 PSQLEXCEPTION을 던졌습니다 : 오류 : CANCELINGSTATEMENTDUETOUSERREQUEST 예외가 사용됩니다. Springboot mybatis-plus ...

돈을 잃지 않도록 추첨 알고리즘을 설계하는 방법은 무엇입니까? 복권 제품을 설계 할 때 각 상을 수상 할 확률을 설정하는 방법이 중요한 질문입니다. 가정 ...

핫스팟 데이터의 필터링 및 동기화를 최적화하는 방법은 무엇입니까? 대규모 데이터 동기화를 처리 할 때 핫스팟 데이터를 효과적으로 필터링하는 방법이 주요 문제가되었습니다. 있다고 가정하면 ...

Java 가상 스레딩 및 멀티 스레딩 병렬 : 호환성 도전 Java 프로그래밍에서 가상 스레드의 도입은 개발자에게보다 효율적인 동시성 처리 방법을 제공합니다. � ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
