Hibernate多对一的实现(Student和Class(学生和班级为例)):

        在多的一端使用标签,这样会在多的一端加入一个外键,这个外键来自于一的一端。同时,这个外键的名称   是由中的column属性来确定的,如果忽略column属性,在外键的名称默认和实体的属性名称一致。

         配置实例:

         其中的stuClass为Student中的属性,class为数据库中外键的名称,如果column被忽略,在外键名称为stuClass。

   Hibernate一对一的实现:(以Student和StudentCard(学生和图书卡为例))

 

           1、一对一主键关联映射(单向):

               让两个实体对象的id保持相同,这样可以避免多余的字段被创建。

 

           具体的实现:

           Student.hbm.xml中配置

            

           

         

               stuCard

           

   

 

            

             标签的含义,指示hibernate怎么加载它的关联对象,默认根据主键加载,                                              constrained="true",表明当前主键上存在一个约束,student的主键作为外键参照了stuCard。

 

              StudentCard.hbm.xml中配置和普通的配置一样

                

            2、一对一主键关联映射(双向):

 

            具体实现:

            Student.hbm.xml中配置不变;在StudentCard.hbm.xml中加入 标签指向student即可

            

   

   3、一对一唯一外键关联映射(单向):

   具体实现是和多对一的原理是一样的,只不过是在的标签中多加入了一个属性:unique="true"

            这就使多的一端的相应字段的任何值都只能为一中情况,从而实现一对一;

                 在Student.hbm.xml中其他的配置保持和普通的一样,另加入:

StudentCard.hbm.xml中配置和普通的配置一样;

 

   4、一对一唯一外键关联映射(双向):

   Student.hbm.xml中的配置不需要变化,只需要在StudentCard.hbm.xml中加入,其中stuCard是Student中的属性,其类型为:StudentCard。

 

   以上是Hibernate中的多对一和一对一的配置,具体配置请下载附件。