Hibernate对象关系映射(一)

Hibernate的本质是对象关系映射,ORM实现了将对象的变化保存到数据库中。以前我们对关系表操作,执行增CRUD。现在我们不在对关系表进行操作,而是直接对对象操作。对象关系的映射有以下几种

基本图形

Hibernate对象关系映射(一)_第1张图片

1

一对一映射

分两种情况

主键

唯一外键

1主键

 两个对象具有相同的主键,不再有额外字段维护他们的关系

Hibernate对象关系映射(一)_第2张图片

2 

PersonCard之间,他们的主键是相同的

2唯一外键

其实是用来表示多对一的,如果加上唯一限制,就可以表示一对一关联

 

Hibernate对象关系映射(一)_第3张图片

3

 

3可以看到卡号在person中充当了一个外键。

根据分类的情况,还可以更细致的划分,每个分类都对应着一种单向和双向的选择,就是图1

认识了基本的一对一关系映射,我们在开看看他们的配置关系,重点还是在Hibernate.hbm.xml文件的配置

1.1主键单向关联






idCard






IdCard.hbm.xml








1.2主键双向关联

因为是单向,所以只要一端进行维护。

区别是一对一双向主键关联与一对一单向主键关联的区别就是,一对一单向主键关联,在person端能看到idCard,而idCard不能看到Person端。而双向关联就是在idCard端也能看到person,也就是不但在Person.hbm.xml中加上标签,同时在IdCard.hbm.xml文件中加上标签。


   
      
         
      
      
      
   

 

2.1唯一外键单向关联

一对一单向唯一外键关联,也就是多对一关联的特例,把多的一端限制为一,就是一对一唯一外键关联。同多对一一样,在一端加入另一端的并采用标签,通过unique="true",这样来限制了多的一端为一。

IdCard.hbm.xml


   
      
         
      
      
   

Person.hbm.xml


   
      
      
         
    
      
      
      

   

双向关联是在在没有的一端加上就可以了。我们的IdCard.hbm.xml中采用标签

小结:

 综上所述,可以看出,同一类映射,无论是单向还是双向,他们的存储结构是相同的,之所以映射文件不同,是因为加载时不同(在增删改时)。如:A对B,A就是主动方,A主动想要了解B的情况,这样把B设置到A端

 

你可能感兴趣的:(【SSH】,hibernate)