Hibernate O/R映射 - hibernate

到目前为止,我们已经看到了非常基本的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 映射一类具有参考到另一个类的一个成员变量。