Hibernate中的一对多关系映射

Java 专栏收录该内容
25 篇文章 1 订阅

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,提高效率

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

 

 

  • 2
    点赞
  • 0
    评论
  • 4
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页

打赏作者

java最强的男人

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值