04_Hibernate----ORM映射:单向多对一

04 ORM映射:单向多对一

 

  1. 映射关系总览  

①单类→单表

单向n1

③双向1对n

④1对1基于外键

⑤1对1基于主键

⑥单向多对多

⑦双向多对多

 

  1. 概念
    1. 多对一

生活中有很多数据直接是多对一的关联关系,例如:多个Order对应一个Customer。

    1. 关联的方向

关联是有方向的。如果从Order对象中能够获取到Customer对象,而从Customer对象中不能获取到Order对象,则关联是单向的。如果从Order和Customer对象中都能够获取到对方,则关联是双向的。我们首先来看单向的多对一关联关系

  1. 创建持久化类

①one:Customer

封装自身必要的信息即可,不包含Order集合的引用

②many:Order

除了要封装自身相关的信息,还要包含Customer对象的引用

  1. 创建*.hbm.xml映射文件
    1. 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.sirius.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>

 

    1. 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.sirius.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>

[3]图解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值