Rumah > Java > javaTutorial > Patutkah Anda Menggunakan Spring Boot `spring.jpa.open-in-view=true`?

Patutkah Anda Menggunakan Spring Boot `spring.jpa.open-in-view=true`?

DDD
Lepaskan: 2024-11-30 03:58:13
asal
392 orang telah melayarinya

Should You Use Spring Boot's `spring.jpa.open-in-view=true`?

"Spring Boot's spring.jpa.open-in-view=true: Mendedahkan Anti-Corak OSIV dan Implikasinya

Memahami Sesi Terbuka dalam Paparan (OSIV)

The sifat spring.jpa.open-in-view dalam dokumentasi Spring Boot ialah bendera yang mengawal sama ada sesi Hibernate akan kekal terbuka semasa fasa pengendalian permintaan servlet Secara lalai, sifat ini ditetapkan kepada benar, mengaktifkan corak OSIV.

Akibat Penggunaan OSIV

Corak OSIV menimbulkan beberapa ketara kelemahan:

  • Kemerosotan Prestasi Pangkalan Data: Mod autokomit digunakan semasa fasa pemaparan, mengenakan tekanan pada pelayan pangkalan data.
  • Kekeliruan tentang Kebimbangan: Penyata pangkalan data dijana oleh logik perniagaan dan UI, merumitkan ujian dan kod penyepaduan penyelenggaraan.
  • Masalah Pertanyaan N 1: Keupayaan UI untuk melintasi persatuan boleh mencetuskan isu pertanyaan N 1.
  • Kesesakan Sambungan: Mengekalkan sambungan pangkalan data terbuka sepanjang fasa rendering memanjangkan masa pajakan dan menghalang concurrency.

Melumpuhkan OSIV dalam Spring Boot

Untuk melumpuhkan OSIV dan memastikan prestasi dan kebolehskalaan optimum:

  • Tetapkan spring secara eksplisit .jpa.open-in-view: true=false dalam konfigurasi application.properties fail.
  • Spring Boot mengeluarkan amaran apabila OSIV didayakan secara lalai, bermula dari versi 2.0, memaklumkan pembangun tentang kemungkinan isu.

Mengendalikan LazyInitializationException

Jika OSIV dilumpuhkan, "LazyInitializationException" mungkin berlaku apabila UI cuba mengakses persatuan yang dimulakan secara malas. Untuk mengelakkan pengecualian ini:

  • Gunakan ambil sertai atau ambil anotasi bersemangat untuk mendapatkan semula entiti yang berkaitan.
  • Gunakan ambil graf atau pertanyaan JPQL dengan klausa JOIN FETCH untuk memilih entiti berkaitan tertentu.
  • Pertimbangkan untuk menggunakan peringkat perkhidmatan atau DAO yang berasingan untuk akses data, membenarkan strategi pengambilan data yang disesuaikan berdasarkan kes penggunaan.

Atas ialah kandungan terperinci Patutkah Anda Menggunakan Spring Boot `spring.jpa.open-in-view=true`?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan