Hibernate中的一对多关系映射

本文详细介绍了Hibernate框架中的一对多关系映射方法,包括数据表设计、配置文件设置及保存、删除操作。通过客户与订单实例,阐述了<many-to-one>和<set>元素的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate框架中关系映射中有:一对一、一对多和多对多,但常用的就是一对多,所以本篇博客就大体概述了一下一对多关系映射。

一对多关系:

例如:客户和订单,客户是一,订单是多

  • 创建customersorders数据表

  • 在多方添加一方的外键 (在orders表添加customer_id)

建立多对一关系映射  :

  • Order.hbm.xml 配置<many-to-one>

  • <many-to-one name="customer"     class="com.baidu.one2many.Customer" column="customer_id"></many-to-one>

    • * name:设定待映射的持久化类的属性名字。

    • * column:设定和持久化类的属性对应的表的外键。

    • * class:设定持久化类的属性的类型。

    • * not-null:是否允许为空。

建立一对多关系映射:

  • 在Customer.hbm.xml 添加<set> 元素

    <set name="orders">

     <key column="customer_id" not-null="true"></key>

     <one-to-many class="com.baidu.one2many.Order"/>

    </set>

  • name :设定Customer中集合类型属性名称

  • <key column :设置生成数据表中外键字段名称

  • not null :设置外键字段非空约束

  • <one-to-many > :设置一对多映射关系

  • class :设置映射关联目标PO类

一对多保存操作:

一对多保存操作--级联保存

一对多保存操作--对象导航

一对多删除操作--级联删除(不建议使用delete!!!)

建议使用delete-orphan:

cascade属性:

inverse属性:目的是减少双向维护带来的多余sql,提高效率

一对多中的父子关系​​​​​​​

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值