美文网首页
hibernate 关联映射和级联操作

hibernate 关联映射和级联操作

作者: bigpeng个人博客 | 来源:发表于2018-07-30 16:23 被阅读15次

1、我们说hibernate 是完全ORM的框架,其对数据库的操作完全面向对象的!表跟表之前的关系有外键关联,或通过中间表关联。那我们该怎么来配置他们的一个关联关系呢?

2、关联映射
关联映射用以来描述表之间的关联关系或者说对象之间的关联关系,一般分为四种
(现假设有两张表 ,A 和 B )
1)一对一 :一个员工,一个详细信息介绍。
2)一对多 :一个部门有多个员工
3)多对一 :多个员工属于同一部门
4)多对多 :一个 员工可以有多个角色,一个角色可以对应多个员工

3、关联映射具体配置

1)一对一配置
2)一对多配置(部门和员工 )

在部门配置文件中加入如下内容:

<!--用户为一对多 设置inverse 为true 外键交由User类来维护
        如果不设置默认为false,为false的结果是,删除机构的时候会将用户表中对应的机构ID设为null.
        如果设置为true,casecade 设置为delete-orphan的话 则会级联删除
        -->
 <bag name="users" inverse="true" cascade="delete-orphan" >
 <!--user 表中的外键-->
     <key column="dept"></key>
     <one-to-many class="com.seecen.pojo.HUser"></one-to-many>
</bag>

3)多对一(员工-->部门)

 <!--多对一-->
        <many-to-one name="hDept" column="DEPT" class="com.seecen.pojo.HDept">

        </many-to-one>

4)多对多

 <!--多对多 需要设定一个中间表 通过bag标签来配置-->
        <bag name="roles" table="h_user_role">
            <!--key 为当前类的字段 -->
            <key column="USERID"></key>
            <many-to-many column="ROLEID" class="com.seecen.pojo.HRole"></many-to-many>
        </bag>

4、级联操作
所谓级联操作就是连带一起操作 。(株连)
在对象关联关系的标签上(bag set list )可以通过配置inverse和cascade两个参数来实现级联操作。
1)inverses:配置该对象是否放弃维护关联外键。默认为false,即可以维护。维护的主要是(外键) 。一般外键在哪个表中我们就让哪个表来维护外键 另外一张表inverses 设置为true。这样可以减少update语句的执行。
2)cascade:配置是否级联保存删除更新等操作。其主要的值有
a)none:默认值,表示不开启级联操作
b)save-update:级联保存和更新
c)delete:级联删除

相关文章

  • hibernate 关联映射和级联操作

    1、我们说hibernate 是完全ORM的框架,其对数据库的操作完全面向对象的!表跟表之前的关系有外键关联,或通...

  • Hibernate级联

    掌握级联的含义: *级联是对象之间的连锁操作,它只影响添加、删除和修改 hibernate一对一主键关联映射(单向...

  • 一口一口吃掉Hibernate——多对多关联映射

    今天来说说Hibernate中的多对多关联映射,多对多关联映射涉及到单向映射和双向映射2种。 [java] vie...

  • Hibernate入门2-关联和映射

    Hibernate 快速入门2 - 关联映射和类继承 2 关联映射 我们知道两个表A、B的映射关系有 1-1, 1...

  • 4.hibernate映射(多对一)

    映射关系 映射是对象到表,映射关系是多个对象的关系映射到多张表的关系! cascade级联 hibernate的级...

  • Hibernate数据持久化之集合的关联映射配置(08)

    Hibernate的关联映射 一 .关联映射的主要内容 1.1 关联映射的使用 普通类型的集合使用:例子,一个用户...

  • Java:hibernate框架(3)

    一. 表与表之间的关系 二.Hibernate的一对多操作1.一对多映射配置 2.一对多级联保存 3.一对多的级联...

  • Hibernate映射关系

    在 Hibernate 中,可以对多张存在关联关系的表进行操作,但需要在映射文件中,将对象的关联关系与数据库表的外...

  • HIbernate第三-四次课

    第三次课 Hibernate的关联映射 many-to-ont关联 one-to-many关联 many-to-m...

  • Hibernate

    Hibernate 简介: Hibernate 是一个开源框架,它是对象关联关系映射的框架,它对 JDBC 做了轻...

网友评论

      本文标题:hibernate 关联映射和级联操作

      本文链接:https://www.haomeiwen.com/subject/eqzomftx.html