Hibernate框架中关系映射中有:一对一、一对多和多对多,但常用的就是一对多,所以本篇博客就大体概述了一下一对多关系映射。
一对多关系:
例如:客户和订单,客户是一,订单是多
-
创建customers、orders数据表
-
在多方添加一方的外键 (在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,提高效率

一对多中的父子关系


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

被折叠的 条评论
为什么被折叠?



