Hibernate 一对一主键单向、双向关联

Hibernate一对一单向主键关联

举例:人Person和身份证IdCard 11 身份证为主表

类模型

Person() ---------> IdCard(主)

id:int                            id:int

name:String                cardNo:String

idCard:IdCard

表关系

Person                           IdCard

id | name                     id | cardNo

1    aaa  -------------> 1 8888888

  bbb  -----------à2 9999999

Person表的id既做Person的主键,又作为外键参考IdCard表主键

 

1.建立对象模型

IdCard.java

Person.java

2.编写配置文件

Person.hbm.xml

<!—这里的主键生成策略为外键策略,参考了对应类IdCard的主键--à

<!— <param name="property">idCard</param>idCard说明了Person类的主键是由哪个类对象对应的表中的主键给出的à

<generator class="foreign">

<param name="property">idCard</param>

</generator>

</id>

<property name="name"/>

<!--one-to-one`标签说明了hibernate怎么加载它关联的对象,默认根据主键加载-->

<!—constrained属性为true表明Person表的主键作为外键参照了IdCard-->

<one-to-one name="idCard" constrained="true"/>

 

IdCard.hbm.xml

 

测试结果:

在Person.hbm.xml中没有设置cascade="all" 但可以级联保存和查询,加上cascade="delete" 才可以级联删除

 

一对一双向关联

测试结果:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值