Mengapa Lazy Loading Gagal untuk Medan @Lob pada Musim Bunga dan Hibernate?

Susan Sarandon
Lepaskan: 2024-11-02 18:28:02
asal
357 orang telah melayarinya

Why Does Lazy Loading Fail for @Lob Fields in Spring and Hibernate?

Masalah Lazy Loading dengan @Lob dalam Spring dan Hibernate

Dalam aplikasi web yang menggunakan Spring dan Hibernate, rekod pangkalan data yang mengandungi data berkaitan fail adalah dipaparkan pada halaman web. Walaupun proses beroperasi dengan lancar apabila volum data adalah sederhana, kuantiti data yang berlebihan mencetuskan "OutOfMemoryError."

Sebagai langkah penyelesaian masalah awal, menetapkan sifat "blobField" kepada "null" menyelesaikan isu memori, membayangkan bahawa malas pemuatan tidak berkesan walaupun terdapat anotasi @Basic(fetch=FetchType.LAZY).

Penjelasan dan Penyelesaian

Menurut dokumentasi Hibernate, medan @Lob sememangnya malas dan melakukan tidak memerlukan anotasi Malas yang eksplisit. Walau bagaimanapun, tingkah laku yang tidak konsisten telah dilaporkan merentas pangkalan data dan pemacu.

Satu penyelesaian melibatkan teknik instrumentasi bytecode seperti Javassist atau Cglib.

Penyelesaian Disyorkan

Kepada menangani isu ini dengan pasti, adalah dicadangkan untuk menyusun semula pemetaan data. Daripada menggunakan sifat, buat pemetaan satu sama satu "palsu". Alih keluar medan LOB daripada kelas utama, wujudkan kelas baharu yang merujuk jadual dan kunci utama yang sama tetapi hanya mengandungi medan LOB yang diperlukan. Tandai pemetaan ini sebagai satu sama satu, ambil pilih dan malas benar. Pendekatan ini memastikan pemuatan malas semasa objek induk kekal dalam sesi.

Atas ialah kandungan terperinci Mengapa Lazy Loading Gagal untuk Medan @Lob pada Musim Bunga dan Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!