Hibernate框架中在.hbm.xml映射文件中配置表与表之间的关联关系

1.Hibernate中关联关系可以分为:

单向关系:只能一张表指向另一张表。

双向关系:表与表之间可以互相指向。

2.根据关联的表的不同可以分为:

1对1关系

1对多关系

多对多关系

例如:1个客户可以对应多个订单,是1对多的关系。


(1)1对多关联

单向多对1:使用<many-to-one/>映射,在数据库中就会添加外键列。

在多端.hbm.xml文件中使用如下代码:

<many-to-one name="多端实体类对应属性名" column="外键列名" class="关联类名(对应的外键类名)"/>
单向1对多:使用<many-to-one/>映射,在数据库中就会添加外键列

在1端.hbm.xml文件中使用如下代码:

<set name="1端对应属性名">
	<key column = "外键列名"/>
	<one-to-many name="关联类名"/>
</set>
双向1对多:在1端使用<set>,在多端使用<many-to-one/>,实际开发时一般使用此关联


(2)1对1关联:4种类型(主表:有外键的表;外键表:外键对应的表)

基于外键单向关联:特殊的单向多对1关系,多端也是1

在主表对应实体类.hbm.xml文件中使用如下代码:

<many-to-one name="属性名" column="外键列名" class="关联表名" unique="true" cascade="all"/>

unique="true":表示1对1,默认为false表示多对1。

cascade="all":表示对当前实体对象进行操作时同时对关联对象操作。

基于外键双向关联

外键可以放在任意一边,在放外键的一端使用<many-to-one/>,将属性unique的属性值谁知为true,在外键对应的另一端设置<one-to-one/>

基于主键单向关联

在主表对应实体类.hbm.xml映射文件中定义主键生成策略:

<!-- foreign:表示以关联的实体生成主键 -->
 <generator class="foreign">
            <param name="property">当前类中关联属性名</param>
 </generator>

并在主表 对应实体类.hbm.xml文件中设置<one-to-one/>关联:

<one-to-one name="属性名" class="关联类名(外键类名)" constrained="true"/>

constrained="true":表示当前实体映射的数据表的主键同时作为外键关联指定实体类映射的数据表。

基于主键双向关联

两端都使用<one-to-one/>,其中一端的主键生成策略必须由关联实体生成:

<generator class="foreign">
	<param name="property">当前类中关联属性名</ param>
</ generator>













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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值