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

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 使用實體層次結構

    SQL & Hibernate
    等級 15,課程 0
    保護問題 今天我們將有一個新的超級有趣的方案——使用Hibernate特性將類層次結構保存到數據庫中。 類層次結構是一組通過繼承關係相互關聯的類。 假設您要將三個類存儲在數據庫中: class User {
    可用
  • 整個類層次結構的單個表

    SQL & Hibernate
    等級 15,課程 1
    描述 存儲類層次結構的下一個方法是將層次結構中的所有類存儲在一個表中。這種策略稱為單表。 例如,像這樣: CREATE TABLE user_ employee_client {
    可用
  • 判別器

    SQL & Hibernate
    等級 15,課程 2
    描述 在上一課中,您看到 Hibernate 使用特殊的 DTYPE VARCHAR 列來存儲實體類的名稱。這樣的列稱為鑑別器。它用於明確確定為數據庫中的給定行創建哪個類。 您可以使用@DiscriminatorColumn註釋操作此列。例子: @DiscriminatorColumn(name="имя_колонки", discriminatorType = DiscriminatorType.INTEGER) 根據 JPA 規範,鑑別器可以有以下類型: 細繩 字符
    可用
  • 連接表

    SQL & Hibernate
    等級 15,課程 3
    描述 在數據庫中存儲類層次結構的另一種策略稱為 Joined Table。它有一個特殊的註釋: @Inheritance(strategy = InheritanceType.JOINED) 我們班級的一個例子: @Inheritance(strategy = InheritanceType.JOINED)
    可用
  • 每班表

    SQL & Hibernate
    等級 15,課程 4
    5.1 說明 最後,最後一個策略是每類表。這意味著每個類將使用一個單獨的表。從某種意義上說,這是同一個 MappedSuperClass,只是更新了形式。 首先,您需要使用註釋: @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
    可用
  • 選擇層次結構保存策略

    SQL & Hibernate
    等級 15,課程 5
    描述 上述每種策略和技術都有其自身的優點和缺點。選擇特定策略的一般建議如下所示: 基於 UNION 的 TABLE_PER_CLASS 策略 如果不需要多態查詢和關聯,則最好選擇此策略。如果您很少做(或根本不做)“從用戶用戶中選擇用戶”。如果您沒有引用用戶的實體類,這是最好的選擇(因為您仍然可以添加優化的多態查詢和關聯)。 SINGLE_TABLE 策略 應使用此策略: a) 僅適用於簡單任務。在規範化和 NOT NULL 約束至關重要的情況下,應該首選策略 #3 (JOIN
    可用
學習
  • 註冊
  • 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