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 元件對映

為具有對另一個類作為成員變數的引用的類的對映。

廣告

© . All rights reserved.