📜  Hibernate-O / R映射

📅  最后修改于: 2020-11-16 06:59:50             🧑  作者: Mango


到目前为止,我们已经看到了使用休眠的最基本的O / R映射,但是有三个最重要的映射主题,我们需要详细学习。

这些是-

  • 集合的映射,
  • 实体类之间的关联映射,以及
  • 组件映射。

集合映射

如果实体或类具有特定变量的值集合,那么我们可以使用Java中可用的任何一个集合接口来映射这些值。 Hibernate可以持久化java.util.Map,java.util.Set,java.util.SortedMap,java.util.SortedSet,java.util.List和所有持久性实体或值数组的实例。

Sr.No. Collection type & Mapping Description
1 java.util.Set

This is mapped with a element and initialized with java.util.HashSet

2 java.util.SortedSet

This is mapped with a element and initialized with java.util.TreeSet. The sort attribute can be set to either a comparator or natural ordering.

3 java.util.List

This is mapped with a element and initialized with java.util.ArrayList

4 java.util.Collection

This is mapped with a or element and initialized with java.util.ArrayList

5 java.util.Map

This is mapped with a element and initialized with java.util.HashMap

6 java.util.SortedMap

This is mapped with a element and initialized with java.util.TreeMap. The sort attribute can be set to either a comparator or natural ordering.

Hibernate支持数组,其中用于Java基本值类型,而用于其他所有内容。但是,它们很少使用,因此在本教程中我将不再讨论它们。

如果要映射Hibernate不直接支持的用户定义的集合接口,则需要向Hibernate告知您的自定义集合的语义,这不是很容易,不建议使用。

关联映射

实体类之间的关联以及表之间的关系的映射是ORM的灵魂。以下是表示对象之间关系基数的四种方式。关联映射可以是单向的,也可以是双向的。

Sr.No. Mapping type & Description
1 Many-to-One

Mapping many-to-one relationship using Hibernate

2 One-to-One

Mapping one-to-one relationship using Hibernate

3 One-to-Many

Mapping one-to-many relationship using Hibernate

4 Many-to-Many

Mapping many-to-many relationship using Hibernate

组件映射

实体类很可能可以引用另一个类作为成员变量。如果被引用的类没有自己的生命周期,并且完全取决于拥有实体类的生命周期,则因此将被引用的类称为Component类

组件集合的映射也可以类似的方式进行,就像常规的集合的映射具有较小的配置差异一样。我们将通过示例详细了解这两个映射。

Sr.No. Mapping type & Description
1 Component Mappings

Mapping for a class having a reference to another class as a member variable.