hibernate的一对一(唯一外键关联)


一:hibernate一对一唯一外键关联映射(单向关联Person---->IdCard)


  一对唯一外键关联映射是多对一关联映射的特例
   可以采用<many-to-one> 标签,指定多的一端的unique=true ,这样就限制了多的一端的多重性为一。

   通过这种手段映射一对一唯一外键关联

采用主键不要加字段,采用外键是需要加字段的。一对一唯一外键关联其实就是多对一的一个特例 ,只是限制了 unique=true

<many-to-one > 的含义就是在多的一端添加一个外键指向一的一端 , 不过这里要限制唯一性。这种情况下其实还是多对一映射。

二.hibernate一对一唯一外键关联映射(双向关联Person<-->IdCard)

一对一唯一外键关联双向,需要在另一端(idcard),添加<one-to-one>标签,指示hibernate如何加载
其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关
系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式
<one-to-one name="person" property-ref="idCard"/>

<one-to-one> 默认是与主键 比较, Property-ref=”idCard” 会指定与哪一个字段比较.

加入 <one-to-one> 标签和数据库没有关系,是告诉 Hibernate 怎么来做这件事,所以数据库不用重新导出,不像 <many-to-one> 因为 . <many-to-one> 要在表里加字段

注:  

 

<one-to-one> 标签 含义:指示如何加载关联对象,或者引用对象,默认根据主键加载,

<many-to-one> 标签 含义:加入外键在多的一端,指向一的一端

 

PS:其他的配置跟多对一外键关联一样的,除开多这一端的*.hbm.xml里面配置文件中加入unique="true"属性外,其他的都是一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值