首页 > 代码库 > Hibernate中的一对多、多对多映射

Hibernate中的一对多、多对多映射

一、一对多映射 

如快递网点(ExpSite)与快递员(Deliver)的关系,即为一对多关系,一个快递网点有多个快递员,他们的关系如下图所示。
技术分享

在一对多中,外键在多的一方 

(1)在多的一方配置外键

Deliver表为多方,Deliver实体类中放一个ExpSite方的引用做属性(外键),即所属网点ExpSiteId;

Deliver实体类配置文件:
<many-to-one name="ExpSiteId" class="ExpSite表所在的包名+ExpSite表的名" column="ExpSiteId(外键字段)"></many-to-one>

(2)在一这方配置集合属性 

ExpSite表为一方,ExpSite实体类中放一个Deliver方的Set集合做属性,假设是 Set<Deliver> deliverList= new HashSet<Deliver>();
<set name="deliverList">
    <key column="ExpSiteId(外键字段)"></key>
    <one-to-many class="Deliver表所在的包名+Deliver表的名"></one-to-many>
</set>

二、多对多映射 

A表和B表为多对多关系:

以A表的实体类配置文件举例:
在A实体类中放一个B方的Set集合做属性,假设是 Set<B> bbb = new HashSet<B>();
<set name="bbb"table="中间表名">
<!-- 自己表对应中间表中的外键-->
      <key column="A表在中间表中的外间字段"></key>
<many-to-many class="B表所在的包名+B表的名" column="B表在中间表中的外间字段"></many-to-many>
</set>
B表的实体类配置文件类似

 

Hibernate中的一对多、多对多映射