Hibernate O/R映射
到目前為止,我們已經看到了非常基本的O/R映射使用Hibernate,但也有我們必須學會在細節三個最重要的映射繪製的主題。這些都是集合的映射,關聯的實體類和組件映射之間的映射。
集合映射:
如果一個實體或類有收集特定變量的值,那麼我們就可以用在Java中可用的集合接口中的任何一個對應的值。 Hibernate可以持久java.util.Map,java.util.Set中,java.util.SortedMap,java.util.SortedSet,java.util.List和持久性的實體或值的任意陣列的實例。
集合類型 | 映射和說明 |
---|---|
java.util.Set | This is mapped with a <set> element and initialized with java.util.HashSet |
java.util.SortedSet | This is mapped with a <set> element and initialized with java.util.TreeSet. The sort attribute can be set to either a comparator or natural ordering. |
java.util.List | This is mapped with a <list> element and initialized with java.util.ArrayList |
java.util.Collection | This is mapped with a <bag> or <ibag> element and initialized with java.util.ArrayList |
java.util.Map | This is mapped with a <map> element and initialized with java.util.HashMap |
java.util.SortedMap | This is mapped with a <map> element and initialized with java.util.TreeMap. The sort attribute can be set to either a comparator or natural ordering. |
數組是由Hibernate與<primitive-array>對Java基本值類型和針對的<array>所有其它支持。然而,他們很少用,所以我不打算討論這些問題在本教學中。
如果要映射是不直接支持Hibernate的用戶定義的集合接口,需要告訴Hibernate有關自定義集合是不太容易的,不建議使用的語義。
關聯關係映射:
關聯實體類和表之間的關係之間的映射是ORM的靈魂。以下是4的方法,使對象之間的關係的基數可以表示。關聯映射可以是單向和雙向的。
映射類型 | 描述 |
---|---|
Many-to-One | Mapping many-to-one relationship using Hibernate |
One-to-One | Mapping one-to-one relationship using Hibernate |
One-to-Many | Mapping one-to-many relationship using Hibernate |
Many-to-Many | Mapping many-to-many relationship using Hibernate |
組件映射:
這是非常有可能是一個實體類可以有一個引用到另一個類的一個成員變量。如果提到類冇有它自己的生命周期,並完全依賴於所屬的實體類的生命周期被引用類,因此因此被稱為Component類。
收集組件的映射也是可能以類似的方式隻是作為與次要配置差異正規集合的映射。我們將看到這兩個映射詳細的例子。
映射類型 | 描述 |
---|---|
Component Mappings | 映射一類具有參考到另一個類的一個成員變量。 |