> 데이터 베이스 > MySQL 튜토리얼 > Spring/Hibernate 애플리케이션에서 지연 Blob 로딩이 실패하는 이유는 무엇입니까?

Spring/Hibernate 애플리케이션에서 지연 Blob 로딩이 실패하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 03:09:29
원래의
968명이 탐색했습니다.

Why is Lazy Blob Loading Failing in My Spring/Hibernate Application?

Spring의 지연 Blob 로드, 최대 절전 모드

웹 애플리케이션의 컨텍스트에서 지연 Blob 로드 문제에 직면하고 있습니다. 최대 절전 모드. 문제를 명확히 하기 위해 웹 페이지에 표시하려는 데이터베이스 레코드는 MySQL에 저장된 대용량 파일입니다.

데이터베이스 구성에는 MySQL, Tomcat, Spring 및 Hibernate가 포함되어 있습니다. @Lob, @Basic(fetch=FetchType.LAZY) 및 @Column 주석을 사용하여 엔터티 클래스에 지연 blob 필드를 정의했습니다.

그러나 blob 필드를 지연으로 표시했음에도 불구하고 데이터 볼륨이 방대할 때 OutOfMemoryError가 발생합니다. 또한 각 행의 blob 필드에 null 값 설정을 시도하여 메모리 문제를 해결했으며 지연 로딩 동작이 의도한 대로 작동하지 않는다고 믿게 되었습니다.

혼란의 원인은 다음과 같습니다. 온라인에서 볼 수 있는 상충되는 정보. 일부 출처에서는 @Lob 필드가 본질적으로 게으르다고 하지만 다른 출처에서는 지연 로딩이 모든 드라이버와 데이터베이스에서 일관되게 작동하지 않을 수 있다고 제안합니다.

잠재적 해결 방법:

  • "가짜" 일대일 매핑 사용: 문서에서 제안한 대로 LOB 필드에 대해 별도의 클래스를 만들고 fetch="select" 및lazy를 사용하여 일대일로 매핑할 수 있습니다. 기본 엔터티에 대해 ="true"입니다. 이 접근 방식을 사용하면 LOB 필드가 명시적으로 요청될 때만 로드됩니다.
  • 바이트코드 계측 시도: 일부 사용자는 지연 Blob 로딩을 위해 Javaassist 또는 Cglib와 같은 바이트코드 계측 라이브러리를 사용하여 성공했다고 보고했습니다. .
  • 문서 및 포럼 검토: Hibernate 및 Spring 문서와 온라인 포럼을 철저하게 검색하여 특정 상황에 대한 추가 통찰력과 잠재적인 솔루션을 찾으세요.

위 내용은 Spring/Hibernate 애플리케이션에서 지연 Blob 로딩이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿