>Java >java지도 시간 >SessionFactory 생성 중 Hibernate의 MultipleBagFetchException을 해결하는 방법은 무엇입니까?

SessionFactory 생성 중 Hibernate의 MultipleBagFetchException을 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-24 16:45:15296검색

How to Resolve Hibernate's MultipleBagFetchException During SessionFactory Creation?

Hibernate SessionFactory 생성 중 MultipleBagFetchException

SessionFactory 생성 중 "MultipleBagFetchException: 동시에 여러 가방을 가져올 수 없습니다." 예외가 발생하는 경우 검사하는 것이 중요합니다. 엔터티

제공된 예에서 상위에는 하위 하위에 대한 일대다 관계가 포함되어 있습니다. 또한 부모의 자녀 목록을 열심히 가져옵니다. 그러나 다른 "상위" 엔터티인 AnotherParent를 Parent에 포함하면 열심히 가져온 두 개의 컬렉션이 있기 때문에 오류가 발생합니다.

이 문제를 해결하려면 FetchType.EAGER를 사용하는 대신 컬렉션 필드에 다음을 추가하는 것이 좋습니다. @LazyCollection(LazyCollectionOption.FALSE). 이 접근 방식은 컬렉션을 적극적으로 가져오는 것을 피하고 예외를 제거합니다.

대부분의 경우 Set List보다 더 적합합니다. 부모와 자식 간의 관계를 나타냅니다. 목록이 특별히 필요한 경우가 아니면 세트를 사용하면 앞서 언급한 문제를 완화하는 데 도움이 될 수 있습니다.

이 솔루션은 예외를 해결하지만 주의해서 진행하는 것이 중요합니다. Vlad Mihalcea가 "최악의 솔루션"이라는 답변에서 설명한 대로 세트만 사용한다고 해서 데카르트 곱의 가능성이 완전히 제거되는 것은 아닙니다.

위 내용은 SessionFactory 생성 중 Hibernate의 MultipleBagFetchException을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.