首頁 >Java >java教程 >spring.jpa.open-in-view=true 在 Spring Boot JPA 中做什麼,為什麼經常不鼓勵使用它?

spring.jpa.open-in-view=true 在 Spring Boot JPA 中做什麼,為什麼經常不鼓勵使用它?

Linda Hamilton
Linda Hamilton原創
2024-12-01 02:16:14980瀏覽

What Does `spring.jpa.open-in-view=true` Do in Spring Boot JPA, and Why Is It Often Discouraged?

理解spring.jpa.open-in-view=true 屬性的用途

在Spring Boot 的JPA 配置中,屬性spring到.jpa.open-in-view。此屬性控制 Web 應用程式中處理延遲載入異常的預設行為。為了有效地理解它的作用,讓我們探討一下它的意義。

屬性預設值

  1. 是此屬性的真正預設值,如果根本沒有提供?

    • 沒有,預設如果未明確設置,則 spring.jpa.open-in-view 的值為 false。

屬性函數

  1. 這到底有什麼作用?我沒有找到任何好的解釋。

    • spring.jpa.open-in-view 屬性啟用或停用「在檢視中開啟會話」(OSIV) 反模式。啟用後,它會強制持久化上下文在視圖渲染期間保持開啟狀態,從而允許載入延遲初始化的關聯,而不會觸發 LazyInitializationException。

關係到SessionFactory 和EntityManagerFactory

    • spring.jpa.open-in-view 對您使用 SessionFactory 或 EntityManagerFactory 沒有任何直接影響。 Spring Boot 的 JPA 實作都支援兩者。

為什麼 OSIV 被認為是有問題的

OSIV反模式通常不被鼓勵,因為對效能和效能產生不利影響可擴充性:

    服務層事務後自動提交
  • 缺乏交易邊界
  • N 1個查詢問題
  • 增加資料庫連線租用時間

在Spring 停用OSIV Boot

要在Spring Boot 中停用OSIV,請在application.properties 檔案中或透過其他設定來源將spring.jpa. open-in-view 設定為false。

結論

理解 spring.jpa.open-in-view 屬性的含義對於優化效能和可擴展性至關重要您的 Spring Boot JPA 應用程式。在適當的時候停用 OSIV,您可以避免與此反模式相關的常見陷阱。

以上是spring.jpa.open-in-view=true 在 Spring Boot JPA 中做什麼,為什麼經常不鼓勵使用它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn