hibernate对象关系映射

 一对一主键关联映射(单向Person---->IdCard)

    原理:让两个实体的主键一样,这样就不需要加入多余的字段了。

    举例:一个人(Person)拥有一张身份证(IdCard)。

    512x87

    707x142

    一对一主键关联映射(双向Person<---->IdCard)

    原理:与上面单项相同,只是需要两端都需要维护。

    举例:同上。

    512x87

    707x142

    Person的映射文件不变,和上面相同。IdCard的映射文件IdCard.hbm.xml。



    在对象模型中,Person和IdCard各自都持有对方的引用,在配置方面,需要在IdCard加入标签,只是hibernate将关联对象Person根据主键加载上来。不影响存储,只影响加载。

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

    原理:一对一唯一外键关联映射其实是多对一的特例,因此和上篇讲过的原理相同。

    举例:同上。

    512x87

    519x118

    Person对象映射文件Person.hbm.xml。

    [html]

  

   

    采用标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性为一。

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

    原理:同上。

    举例:同上。

    512x87

    522x114

    Person映射文件不变,和上面相同。IdCard的映射文件IdCard.hbm.xml



   从对象模型看,双方都各自持有对方的引用。从配置看,一对一唯一外键关联双向采用标签映射,必须指定标签中的property-ref属性为关系字段的名称,它表示本类(IdCard)的主键将会与关联类(Person)的此属性(idCard)相对应。

    多对多关联映射(单向User---->Role)

    原理:一般的设计中,多对多关联映射,需要一个中间表,将两个表中的主键放到中间表中做一个关联。

    举例:一个用户(User)对多个角色(Role),一个角色对多个用户。

    549x87

    627x235

    User对象的映射文件User.hbm.xml。

    [html]

   

   

   

   

   

   

   

   

   

   

   

   

    多对多的关联映射,在实体类中,跟一对多一样,也是用集合来表示的。标签中用table属性重命名中间表名称,标签定义当前表的主键,用标签来关联另一张表。

    多对多关联映射(双向User<---->Role)

    原理:同上。

    举例:同上。

    549x87

    619x157

    User对象的映射文件和上面相同。Role的映射文件Role.hbm.xml。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值