Spring Hibernate Blob Lazy Loading
Lazy loading dalam Hibernate membolehkan pengambilan data tertunda, mengurangkan penggunaan memori dan meningkatkan prestasi. Walau bagaimanapun, sesetengah pengguna menghadapi masalah dengan pemuatan malas LOB (Perduaan Objek Besar) dalam Hibernate.
Dalam konfigurasi Hibernate biasa dengan MySQL, TOMCAT, Spring dan Hibernate, entiti yang diberi anotasi dengan @Lob sepatutnya mempunyai pengambilan malas secara lalai. Walau bagaimanapun, sesetengah pengguna melaporkan bahawa tingkah laku ini tidak konsisten merentas pemacu dan pangkalan data yang berbeza.
Satu isu yang berpotensi berkaitan dengan instrumentasi kod bait. Menggunakan rangka kerja seperti Javaassist atau cglib untuk manipulasi bytecode boleh mempengaruhi cara Hibernate mentafsir anotasi pemuatan malas.
Dalam kes apabila pemuatan malas LOB gagal, penyelesaian yang disyorkan ialah menggunakan pemetaan satu sama satu sebagai pemegang tempat untuk medan LOB. Ini melibatkan mencipta kelas berasingan yang merujuk kepada jadual dan kunci utama yang sama, tetapi hanya mengandungi medan LOB yang diperlukan sebagai sifat. Pemetaan hendaklah dikonfigurasikan sebagai fetch="select" dan lazy="true". Ini memastikan bahawa data LOB diambil hanya apabila diminta secara eksplisit.
Dengan melaksanakan penyelesaian ini, anda boleh mendayakan pemuatan malas LOB dengan berkesan sambil menangani potensi isu keserasian atau batasan dalam mekanisme pemuatan malas Hibernate.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Lazy Loading LOB dalam Hibernate dengan Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!