《Hibernate学习笔记八》:组件映射
前面介绍了一对一的单向、双向外键关联,例如,学生证和学生是一个一对一的关系。这篇博文主要是介绍下组件映射,即一个是另一个的一部分,例如,学生证的信息也可以作为学生信息的一部分,即在数据库中只存在学生一个表,而不是有学生和学生证两个表,并且这两个表中有一个一对一的关联关系。
如下:
有人或许会说,那我们就将学生和学生证的信息写在一个类中,则就不需要组件映射了,确实可以这样,但是,根据类的设计原则,我们一般都会将其设计为两个类,然后将学生证的信息作为一个组件映射为学生信息的一部分。那么该如何来实现了,下面将进行介绍。
组件映射的Annotation实现:借助于@embedded
IdCard类
IdCard类由于是学生信息的一部分,因此此类不是一个实体类,即没有用@Entity注解标识。
- 1
- 2
- 3
- 4
- 5
Student类
里面用@Embedded来对IdCard这个类进行注解即可实现组件映射。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
hibernate.cfg.xml文件
在此文件中,只需要指定一个映射实体类Student即可。如下:
- 1
测试类
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
此测试类就是简单的将SQL语句写入数据库中。
当运行该测试类,在控制台中我们可以看到如下的输出信息,从输出信息中我们可以看到:创建了一个学生表,且学生证的信息时学生表的一部分。
由于使用Annotation来实现组件映射相当简单,这里就不再介绍关于使用XXX.hbm.xml文件的实现了。
from: http://blog.youkuaiyun.com/u010412719/article/details/51334111