关系分为:一对一、一对多、多对多和继承,今天重点讲下一对多和多对多关系。
在一对多的关系中我们又可以分为单向的和双向的:
1、单向是指,我们可以从一个对象中寻找到另一个对象,而不能从另一个对象中找回原来的对象,表现在代码上就是,一个对象中存在另一个对象的Set集合属性,而另一个对象可以看成是与外界豪无关系的类,他的hbm的编写和普通的数据库映射最简单版本完全一样,重点是在包含Set集合属性的对象的映射,其他都是一样,但是在书写Set属性映射的时候标签不再是<property>而是<set>:
<set name="myChildren" table="t_children" cascade="all" inverse="true">
<key column="f_motherid"></key>
<one-to-many class="com.lovo.po.ChildPO"/>
</set>
name属性表示set的名字,table中是两个对象存在的关系表,inverse默认为false意思是自己处理,设置为true表示交给对方处理,<key>标签中column表示自己的主键,<one-to-many>中class表示需要关联的对象全路径。
2、双向是指两个对象都可以找到彼此,其中set存在于one这一方,而many的一方存在一个one方类型的属性,set的配置和上面一样,但是在配置many方的one类型时:
<many-to-one name="myMum" class="com.lovo.po.MotherPO"
cascade="all" column="f_motherid">
</many-to-one>
name表示属性名字,class表示属性的类型对象全路径,column的值是外键
多对多:
这种关系需要两个对象都有SET集合:
<set name="roleSet" table="t_employee_role" cascade="all">
<key column="f_employeeid"></key>
<many-to-many class="com.lovo.po.RolePO" column="f_roleid"/>
</set>
name表示SET的名字,table表示中间表,<key>中的column还是表示主键,<many-to-many>中的class表示另一个对象的全路径,column表示在本对象中的外键,另一个对象的SET写法一样。
注意:
one-to-many只存在于集合标签中
many-to-one,哪个对象拥有外键,就在哪个对象中写这个标签
many-to-many至少有一方的inverse为false
<!-- -->
分享到:
相关推荐
hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记
Hibernate学习笔记_特别详细 Hibernate学习笔记_特别详细
Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记
学习hibernate框架时,整理的笔记,对hibernate框架有全面的介绍
Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记
hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要
达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,
7.1.1Hibernate的入门必备——文档和源码 视频看我的主页共享地方
hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
Java相关课程系列笔记之十四Hibernate学习笔记
这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。
提升Hibernate性能的魔方——IronTrack SQL.pdf
hibernate学习笔记 hibernate
hibernate学习笔记文档
Hibernate学习笔记!
马士兵hibernate学习笔记(原版)
hibernate学习笔记1
【吐血推荐】 hibernate学习笔记,学习大纲
)马士兵java框架hibernate学习笔记