Hibernate的数据映射关系

原创 2016年12月19日 21:42:33

1单向 关系 ,1 - N 1 - 1 N-1 N -N

a 单向N-1,只需要从N的一端 访问到 1的一端,1 特指公共的地方,
使用方法:在N的一端增加一个1的实体

(1)无连接表映射,在N的的一端数据表增加一个外键列,
(2)有连接表映射,强制利用join产生连接表,
<join table="" >
        <key column=""/>
        name 表示类中属性的名字
        <many-to-one name="" column="" class="" cascade=""/>
    </join>

b 单向 1-1 只是将N-1 的N端 设置为 唯一,即 设置属性 unique=”true”
1、基于外键 2、基于连接表

c 单向 1-N 基于一个集合属性,少用 1-N单向关联,多用1—N双向关联
使用方法 在 1 的一端添加集合属性
1 无连接表的连接

<set name="addresses">
        <key column="person_id"/>
        <one-to-many class="Address"/>
    </set>

2 有连接表的1- N 单向关联 ,使用 ,将unique设置为 true

<set name="addresses" table="person_address">
            <key column="person_id"/>
            <many-to-many  class="Address" column="address_id" unique="true"/>
</set>

d 单向 N - N 端 必须用 连接表,并且控制端 添加 set 属性 <many-to-many class="" column="" />

<set name="addresses" table="person_address">
            <key column="person_id"/>
            <many-to-many class="" column="" />
        </set>

双向 1-N ,Hibernate推荐使用双向 1—N,并且 N这一端为 控制端

a 双向 1-N ,在 1的一端 增加 N ,在N的一端 增加 1,并且 1 为外键,

(1)无连接表的双向 1-N
1端操作

<set name="" inverse="true"> <!--不控制关系 -->
<key column="person_id"/>
<one-to-many class="Address"/>
</set>

N端操作

<many-to-one name="person" column="person_id" class="person" not-null="true" />

持久化 1-N关系,先 持久化 1 ,然后 通过N端设置1端,建立关联关系。

(2)有连接表的双向 1—N
    1 的一端 设置为 many-to-many  unique设置为 1 
    <set name="" inverse="true" table="person_address">
        <key column="person_id"/>
        <many-to-many class="" unique="true" column="address_id"/>
    </set>

    N 的一端 设置为 join
    <join table="person_address">
        <key="address_id"/>
        <many-to-one name="person" column="person_id" not-null="true"/>
    </join>

b 双向 N - N
使用方法 两端 都添加 set 属性,必须使用连接表

<set table="" name="addresses"/>
    <key column="person_id"/>
    <many-to-many  column="address_id" class="" />
</set>

另外一个N端 对

`

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Hibernate数据类型映射关系

  • 2008年10月23日 14:39
  • 12KB
  • 下载

MySQL\Hibernate\Java数据类型映射关系

类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   ...
  • whucyl
  • whucyl
  • 2012年08月10日 14:12
  • 6178

Hibernate数据映射关系

对象关系映射(Object Relational Mapping)是将关系数据库中表的数据映射成对象,方便开发人员以面向对象思想操作数据库的技术。Hibernate就是实现ORM的一种强大框架,与Sp...
  • picway
  • picway
  • 2016年11月21日 17:20
  • 337

Hibernate映射关系一对多

  • 2012年10月31日 16:47
  • 6.49MB
  • 下载

hibernate映射关系讲解

  • 2011年08月09日 17:02
  • 110KB
  • 下载

【Hibernate】映射关系总结

在hibernate中,由于是对对象进行操作,但是要实现表与表之间的关系,是怎么样实现的呢? 一、Hibernate的映射       Hibernate是对对象进行操作,Hibernat...
  • judyge
  • judyge
  • 2016年03月24日 10:06
  • 400

hibernate 映射关系

  • 2011年11月20日 22:18
  • 277KB
  • 下载

hibernate5--3.映射关系

  • 2017年03月10日 08:01
  • 15.78MB
  • 下载

hibernate关联映射关系注释

1. 使用Hibernate Annotation来做对象关系映射  1) 添加必须包:      hibernate-jpa-2.0-api-1.0.0.Final.jar  2)...
  • dada678
  • dada678
  • 2016年06月29日 23:05
  • 307

hibernate映射关系关联查询

  • 2012年05月11日 10:51
  • 1.04MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate的数据映射关系
举报原因:
原因补充:

(最多只允许输入30个字)