- Hibernate 教程
- Hibernate - 首頁
- ORM - 概述
- Hibernate - 概述
- Hibernate - 架構
- Hibernate - 環境
- Hibernate - 配置
- Hibernate - 會話
- Hibernate - 持久化類
- Hibernate - 對映檔案
- Hibernate - 對映型別
- Hibernate - 示例
- Hibernate - O/R 對映
- Hibernate - 級聯型別
- Hibernate - 註解
- Hibernate - 查詢語言
- Hibernate - Criteria 查詢
- Hibernate - 原生 SQL
- Hibernate - 快取
- Hibernate - 實體生命週期
- Hibernate - 批處理
- Hibernate - 攔截器
- Hibernate - ID 生成器
- Hibernate - 儲存圖片
- Hibernate - log4j 整合
- Hibernate - Spring 整合
- Hibernate - Struts 2 整合
- Hibernate - Web 應用程式
- 對映表示例
- Hibernate - 表繼承策略(每個層次結構一張表)
- Hibernate - 表繼承策略(每個具體類一張表)
- Hibernate - 表繼承策略(每個子類一張表)
- Hibernate 有用資源
- Hibernate - 問答
- Hibernate - 快速指南
- Hibernate - 有用資源
- Hibernate - 討論
Hibernate - O/R 對映
到目前為止,我們已經看到了使用 Hibernate 進行非常基本的 O/R 對映,但還有三個最重要的對映主題,我們需要詳細學習。
它們是 -
- 集合的對映,
- 實體類之間關聯的對映,以及
- 元件對映。
集合對映
如果一個實體或類對於某個特定變數具有值的集合,那麼我們可以使用 Java 中提供的任何一個集合介面來對映這些值。Hibernate 可以持久化 **java.util.Map、java.util.Set、java.util.SortedMap、java.util.SortedSet、java.util.List** 以及任何 **陣列** 的持久化實體或值。
| 序號 | 集合型別 & 對映描述 |
|---|---|
| 1 | java.util.Set
這對映為 <set> 元素,並使用 java.util.HashSet 初始化。 |
| 2 | java.util.SortedSet
這對映為 <set> 元素,並使用 java.util.TreeSet 初始化。可以將 **sort** 屬性設定為比較器或自然排序。 |
| 3 | java.util.List
這對映為 <list> 元素,並使用 java.util.ArrayList 初始化。 |
| 4 | java.util.Collection
這對映為 <bag> 或 <ibag> 元素,並使用 java.util.ArrayList 初始化。 |
| 5 | java.util.Map
這對映為 <map> 元素,並使用 java.util.HashMap 初始化。 |
| 6 | java.util.SortedMap
這對映為 <map> 元素,並使用 java.util.TreeMap 初始化。可以將 **sort** 屬性設定為比較器或自然排序。 |
Hibernate 支援使用 <primitive-array>(用於 Java 基本值型別)和 <array>(用於其他所有型別)的陣列。但是,它們很少使用,因此我不會在本教程中討論它們。
如果要對映 Hibernate 不直接支援的使用者定義集合介面,則需要告訴 Hibernate 自定義集合的語義,這並不容易,也不建議使用。
關聯對映
實體類之間關聯的對映以及表之間的關係是 ORM 的核心。以下是表示物件之間關係的基數的四種方式。關聯對映可以是單向的,也可以是雙向的。
| 序號 | 對映型別 & 描述 |
|---|---|
| 1 | 多對一
使用 Hibernate 對映多對一關係 |
| 2 | 一對一
使用 Hibernate 對映一對一關係 |
| 3 | 一對多
使用 Hibernate 對映一對多關係 |
| 4 | 多對多
使用 Hibernate 對映多對多關係 |
元件對映
實體類很有可能將另一個類作為成員變數引用。如果被引用的類沒有自己的生命週期,並且完全依賴於擁有實體類的生命週期,那麼被引用的類因此被稱為 **元件類**。
元件集合的對映也類似於常規集合的對映,只是配置略有不同。我們將透過示例詳細瞭解這兩種對映。
| 序號 | 對映型別 & 描述 |
|---|---|
| 1 | 元件對映
為具有對另一個類作為成員變數的引用的類的對映。 |