一对一主键关联映射



  一、一对一主键关联映射——单向
      一般一对一主键关联映射通过foreign主键生成器使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。

领域模型图:


 1.使用:
  <generator class="foreign">
     <param name="property">idCard</param>
  </generator>
 只是配置主键的生成策略,是由idCard的对象的主键提供(idCard是Person类的一个属性)
 
 2.再配置:
      <one-to-one name="idCard" constrained="true"></one-to-one>
 当constrainted=“true”配上之后就在映射的那张表上添加一个外键约束,表示通过一个外键引用对Person的主键进行约束。
 
 3.保存
      session.save(person),person的主键是共享了idCard的主键,所以要先保存idCard对象,然而不需要调用save(idCard),因为一对一主键关联映射中默认了cascade属性,会自动的先保存idCard对象。所以不会抛出TransientObjectException异常。


   3.删除
      默认的情况下删除一个person对象的时候不会把对应的idCard对象删除,只有配置ascade的delete操作时才能级联的把相应的idcard对象删除。
  
 4.加载
  one-to-one标签默认根据主键加载。
二 、一对一主键关联映射——双向,领域模型图:


 在Idcard中加入one-to-one标签
 1.配置
  <one-to-one name="person"/>
 2.保存
     还是从person端保存。
 3.加载
     one-to-one默认根据主键加载,可以从idCard加载。
 4.删除
     在one-to-one标签中配置cascade的delete操作可以将关联对象也删除

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值