Hibernate实体关系关联映射中配置文件的编写

最近接触到hibernate这个框架,觉得它的实体关联关系映射的xml配置 文件这一部分感觉有点混乱,所以今天在这里稍作总结

比较常见的映射是多对一,多对多,今天我们就只说这两个



多对一:我们以顾客和订单为例

(如果是单向,我们就只配置Customer就可以了)

顾客实体:

Hibernate实体关系关联映射中配置文件的编写_第1张图片

数据库中的顾客表

Hibernate实体关系关联映射中配置文件的编写_第2张图片

订单实体:

Hibernate实体关系关联映射中配置文件的编写_第3张图片

数据库中的定单表:

这里写图片描述

顾客实体关联映射xml文件配置:



<hibernate-mapping package="com.qianfeng.domain">
      <class name="Customer" table="t_customer">
         <id name="id" column="id">
            <generator class="native">generator>
         id>
         <property name="name" column="name" type="string">property>
         
         <set name="orders" inverse="true" cascade="save-update">
              <key column="cid">key>
              <one-to-many class="Order"/>
         set>
      class>

hibernate-mapping>

订单实体映射关系xml文件





<hibernate-mapping package="com.qianfeng.domain">

      <class name="Order" table="t_order">

         <id name="id" column="id">
            <generator class="native">generator>
         id>

         <property name="name" column="name" type="string">property>
         
         <many-to-one name="customer" column="cid" class="Customer" cascade="save-update">many-to-one>
      class>

hibernate-mapping>

多对多:我们以学生和课程为例

因为是多对多关系,所以我们的数据库表中学生表(t_student)中要有外键关联课程表(t_course)同时课程表要有外键关联学生表,这时候我们就需要一张中间表(t_student_course)来简历学生表和课程表之间的关系

学生实体:

Hibernate实体关系关联映射中配置文件的编写_第4张图片

课程实体:

Hibernate实体关系关联映射中配置文件的编写_第5张图片

学生关联关系映射文件:Student.hbm.xml

<class name="Student" table="t_student">
         <id name="id" column="id">
            <generator class="native">generator>
         id>

         <property name="name" column="name" type="string">property>
         
         <set name="courses" table="t_student_course"  cascade="save-update"  inverse="true">
            <key column="sid">key>
            <many-to-many class="Course" column="cid">many-to-many>
         set>
      class>

课程关联关系映射文件:Course.hbm.xml

<class name="Course" table="t_course">
         <id name="id" column="id">
            class="native">
         id>

         <property name="name" column="name" type="string">property>

         <set name="students" table="t_student_course">
             "cid">
             to-many class="Student" column="sid">to-many>
         set>
      class>

你可能感兴趣的:(Hibernate实体关系关联映射中配置文件的编写)