O/R Mappings
到目前为止,我们已经看到了使用hibernate进行非常基本的O/R映射,但是有三个最重要的映射主题,我们必须详细了解它们。
这些是 -
- Mapping of collections,
- 实体类之间关联的映射,和
- Component Mappings.
集合映射
如果实体或类具有特定变量的值集合,那么我们可以使用java中可用的任何一个集合接口映射这些值。 Hibernate可以持久保存java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List以及任何持久化实体或值array的实例。
Sr.No. | 集合类型和映射描述 |
---|---|
1 | java.util.Set 这是使用元素映射的,并使用java.util.HashSet初始化 |
2 | java.util.SortedSet 它使用元素映射,并使用java.util.TreeSet初始化。 sort属性可以设置为比较器或自然排序。 |
3 | java.util.List 它使用元素映射,并使用java.util.ArrayList初始化 |
4 | java.util.Collection 它使用或元素映射,并使用java.util.ArrayList初始化 |
5 | java.util.Map 它使用 |
6 | java.util.SortedMap 这是使用sort属性可以设置为比较器或自然排序。 |
Hibernate支持数组,其中用于Java原始值类型,用于其他所有内容。 但是,它们很少使用,所以我不打算在本教程中讨论它们。
如果要映射Hibernate不直接支持的用户定义集合接口,则需要告诉Hibernate有关自定义集合的语义,这不是很容易,也不建议使用。
关联映射
实体类之间的关联映射和表之间的关系是ORM的灵魂。 以下是可以表达对象之间关系的基数的四种方式。 关联映射可以是单向的,也可以是双向的。
Sr.No. | 映射类型和描述 |
---|---|
1 | Many-to-One 使用Hibernate映射多对一关系 |
2 | One-to-One 使用Hibernate映射一对一关系 |
3 | One-to-Many 使用Hibernate映射一对多关系 |
4 | Many-to-Many 使用Hibernate映射多对多关系 |
组件映射
Entity类很可能将另一个类的引用作为成员变量。 如果引用的类没有自己的生命周期并完全依赖于拥有实体类的生命周期,那么引用的类因此被称为Component class 。
组件集合的映射也可以以类似的方式进行,就像具有较小配置差异的常规集合的映射一样。 我们将通过示例详细地看到这两个映射。
Sr.No. | 映射类型和描述 |
---|---|
1 | 组件映射 将具有对另一个类的引用的类映射为成员变量。 |