到目前为止,我们已经看到了使用hibernate的非常基本的O/R映射,但是有三个最重要的映射主题,我们必须详细了解.
这些是&减去;
集合映射,
实体类之间关联的映射,以及
组件映射.
如果实体或类有集合映射对于特定变量的值,我们可以使用java中可用的任何一个集合接口映射这些值. Hibernate可以持久化 java.util.Map,java.util.Set,java.util.SortedMap,java.util.SortedSet,java.util.List 和任何数组持久性实体或值.
Sr .No. | 集合类型&映射描述 |
---|---|
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> for Java原始值类型和< array>其他一切.但是,它们很少使用,所以我不打算在本教程中讨论它们.
如果要映射Hibernate不直接支持的用户定义集合接口,需要告诉Hibernate关于自定义集合的语义,这不是很容易,不建议使用.
映射实体类之间的关联和表之间的关系是ORM的灵魂.以下是可以表达对象之间关系基数的四种方式.关联映射可以是单向的也可以是双向的.
Sr.No. | 映射类型&说明 |
---|---|
1 | 多对一 使用Hibernate映射多对一关系 |
2 | 一对一 使用Hibernate映射一对一关系 |
3 | 一对多 使用Hibernate映射一对多关系 |
4 | 多对多 映射许多使用Hibernate的多对多关系 |
Entity类很可能有一个引用另一个类作为成员变量.如果引用的类没有自己的生命周期并完全依赖于拥有实体类的生命周期,那么引用的类因此被称为组件类.
组件集合的映射也可以采用类似的方式进行,就像常规集合的映射具有较小的配置差异一样.我们将通过示例详细看到这两个映射.
Sr.No. | 映射类型&说明 |
---|---|
1 | 组件映射 将具有对另一个类的引用的类映射为成员变量. |