CodeGym
AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 延遲加載

    SQL & Hibernate
    等級 14,課程 0
    1.1 問題背景 當您開始使用真實的數據庫時,您會立即記住這句話“過早的優化是萬惡之源”。只是現在你以消極的方式記住了她。使用數據庫時,優化是必不可少的。您需要在設計階段就已經使用它。 Hibernate 使得使用數據庫非常方便。只需正確註釋@OneToMany和 ,您就可以輕鬆獲得任何子對象@ManyToMany。例子:
    可用
  • 映射集合時的延遲加載

    SQL & Hibernate
    等級 14,課程 1
    2.1 獲取選項 Hibernate 的開發人員很早就知道加載子實體的問題。所以他們做的第一件事就是在註釋中添加一個特殊的提取@OneToMany參數,@ManyToMany。 該參數可以取兩個值: 渴望的 懶惰的 例子: @OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
    可用
  • LazyCollectionOption.EXTRA

    SQL & Hibernate
    等級 14,課程 2
    了解 LazyCollectionOption.EXTRA 但最令人感興趣的是 LazyCollectionOption.EXTRA 值。如果您將它指定為@LazyCollection註釋的值,那麼 Hibernate 將盡可能長時間地延遲加載集合的元素。 如果您嘗試獲取集合中元素的數量: User user = session.load(User.class, 1);
    可用
  • 加入獲取

    SQL & Hibernate
    等級 14,課程 3
    問題描述 正如我們上面所說, LazyCollectionOption.EXTRA註解有一個問題——它為每個對像對數據庫執行單獨的請求。我們需要以某種方式向 Hibernate 解釋我們希望它立即為我們的父對象加載所有子對象。 Hibernate 的開發者想出了解決這個問題的方法, HQL 中的join fetch operator 。 HQL查詢示例: select distinct task from Task t left join fetch t.employee o
    可用
  • Hibernate 中的數據緩存

    SQL & Hibernate
    等級 14,課程 4
    永遠不要編寫緩存解決方案 另一種加快數據庫工作的方法是緩存我們之前已經請求過的對象。 重要的!永遠不要編寫自己的緩存解決方案。這項任務有很多你做夢也想不到的陷阱。 問題 1 -緩存刷新。有時,當需要從緩存中刪除對像或在緩存中更新對象時,會發生事件。勝任地做到這一點的唯一方法是通過緩存引擎將所有請求傳遞給數據庫。否則,每次你都必須明確地告訴緩存應該刪除或更新其中的哪些對象。 問題 2 -內存不足。在您發現內存中的對象佔用大量空間之前,緩存似乎是個好主意。您需要額外的數十 GB
    可用
  • 配置二級緩存

    SQL & Hibernate
    等級 14,課程 5
    並發策略 在 Hibernate 中啟用二級緩存後,您需要向 Hibernate 說明我們要緩存哪些 Entity 對像以及如何緩存。 為此,Hibernate 為實體類提供了一個特殊的註釋 - @Cache。例子: @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 需要為我們要為其使用二級緩存的每個 Entity 實體編寫此註釋。例子: @Entity
    可用
  • 自定義查詢緩存

    SQL & Hibernate
    等級 14,課程 6
    為什麼需要查詢緩存 讓我們用 HQL 中的員工重寫我們的例子: Employee director1 = session.createQuery("from Employee where id = 4").uniqueResult();
    可用
  • 設置緩存引擎

    SQL & Hibernate
    等級 14,課程 7
    設置緩存 讓我們回到 hibernate.cfg.xml 文件中的緩存設置:
    可用
學習
  • 註冊
  • Java 課程
  • 題目協助
  • 價格
  • Java 語法
社群
  • 用戶
  • 文章
  • 論壇
  • 聊天
  • 成功故事
  • 動態
  • 聯盟計畫
公司
  • 關於我們
  • 聯絡方式
  • 評價
  • 新聞中心
  • CodeGym for EDU
  • 常見問題
  • 支援
CodeGymCodeGym 是一門從零開始學習 Java 程式設計的線上課程。這門課程是初學者精通 Java 的完美方式。它包含超過 1200 題、具即時檢驗功能,以及涵蓋 Java 基礎理論的必要範圍。為了幫助你在學習上成功,我們實作了一系列激勵功能:測驗、程式專案、關於有效學習的內容,以及 Java 開發者職涯相關內容。
追蹤我們
介面語言
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia
繁體中文
Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym
MastercardVisa
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym