Hibernate - O / R映射

到目前为止,我们已经看到了使用hibernate的非常基本的O/R映射,但是有三个最重要的映射主题,我们必须详细了解.

这些是&减去;

  • 集合映射,

  • 实体类之间关联的映射,以及

  • 组件映射.

集合映射

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

Sr .No.集合类型&映射描述
1java.util.Set

这是用< set>映射的.元素并用java.util.HashSet初始化

2java.util.SortedSet

这是用< set>映射的.元素并使用java.util.TreeSet初始化. sort 属性可以设置为比较器或自然排序.

3java.util.List

这是用< list>映射的.元素并用java.util.ArrayList初始化

4java.util.Collection

这是用< bag>映射的.或者< ibag>元素并用java.util.ArrayList初始化

5java.util.Map

这是用< map>映射的.元素并用java.util.HashMap初始化

6java.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组件映射

将具有对另一个类的引用的类映射为成员变量.