Hibernate에서 @Lob 주석은 다음과 같은 대형 개체를 포함하는 영구 속성을 지정하는 데 사용됩니다. BLOB 또는 CLOB. 기본적으로 @Lob 속성은 느리게 가져옵니다. 즉, 실제로 코드에서 액세스할 때만 데이터베이스에서 검색됩니다.
@Lob 속성의 지연 로딩은 데이터 양을 줄여 성능을 향상시키는 데 도움이 될 수 있습니다. 데이터베이스에서 개체를 검색할 때 메모리에 로드됩니다. 그러나 경우에 따라 @Lob 속성의 지연 로딩으로 인해 OutOfMemoryError 예외가 발생할 수 있으며, 특히 @Lob 속성에 대량의 데이터가 포함되어 있는 경우 더욱 그렇습니다.
이 문제에 대한 한 가지 가능한 해결 방법은 "가짜"를 사용하는 것입니다. @Lob 속성 대신 일대일 매핑. 여기에는 원래 클래스와 동일한 테이블 및 기본 키를 참조하지만 @Lob 속성만 속성으로 포함하는 새 클래스를 만드는 작업이 포함됩니다. 두 클래스 간의 매핑은 fetch="select" 및lazy="true"를 사용하여 일대일 매핑으로 지정됩니다.
"가짜" 일대일 매핑을 사용하면 @ Lob 속성은 실제로 코드에서 액세스될 때만 데이터베이스에서 검색되므로 성능을 향상하고 OutOfMemoryError 예외를 방지하는 데 도움이 될 수 있습니다.
추가 고려 사항:
위 내용은 Spring 및 Hibernate에서 @Lob 지연 로딩 및 OutOfMemoryError를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!