Hibernate中的一对多关系映射

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

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

猜你喜欢

转载自blog.csdn.net/weixin_42719412/article/details/83113576