Hibernate ORM映射多对一

来源:互联网 发布:淘宝店主贷款 编辑:程序博客网 时间:2024/05/23 19:39

多对一
生活中有很多数据直接是多对一的关联关系,例如:多个Order对应一个Customer。
关联的方向
关联是有方向的。如果从Order对象中能够获取到Customer对象,而从Customer对象中不能获取到Order对象,则关联是单向的。如果从Order和Customer对象中都能够获取到对方,则关联是双向的。我们首先来看单向的多对一关联关系。
创建持久化类
①one:Customer
封装自身必要的信息即可,不包含Order集合的引用
②many:Order
除了要封装自身相关的信息,还要包含Customer对象的引用
这里写图片描述

创建*.hbm.xml映射文件
one:Customer.hbm.xml
简单的单表映射

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" ><hibernate-mapping package= "com.atguigu.hibernate.bean">     <class name ="Customer" table="CUSTOMERS">            <id name ="cutomerId" type="java.lang.Integer">                 <column name ="CUTOMER_ID" />                 <generator class ="native" />            </id >            <property name ="cutomerName" type="java.lang.String">                 <column name ="CUTOMER_NAME" />            </property >     </class ></hibernate-mapping>

many:Order.hbm.xml
[1]映射OID和自身信息
[2]映射many-to-one关联关系

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" ><!-- Generated 2015-4-16 16:33:49 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping package= "com.atguigu.hibernate.bean">    <class name ="Order" table="ORDERS">        <id name ="orderId" type="java.lang.Integer">            <column name ="ORDER_ID" />            <generator class ="native" />        </id >        <property name ="orderName" type="java.lang.String">            <column name ="ORDER_NAME" />        </property >        <!-- 映射多对一关联关系 -->        <many-to-one name ="customer" class="Customer" column= "CUSTOMER_ID_FK" />    </class ></hibernate-mapping>

这里写图片描述

0 0
原创粉丝点击