`
caizhongda
  • 浏览: 184498 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于 Hibernate 级联 删除 的问题

    博客分类:
  • Java
阅读更多
Hibernate级联删除,删除某一条数据,则其子表的所有级联数据全部自动删除。这样的需求在Hibernate里可以使用cascade简单地加以实现。下面就Hibernate级联删除的问题举例进行说明。

比如有下面四个表:

A(id, name)   AA(id, name, a_id)   B(id, name, a_id)   BB(id, name, b_id)  假设它们之间的关系是:

A:AA=one-to-many   A:B=one-to-one(外键定义one-to-one关系)   B:BB= one-to-many
 A.hbm.xml 


  <set name="aaSet" lazy="true" inverse="true" cascade="all-delete-orphan">       
<key column="A_ID" not-null="true" />  
     <one-to-many class="AA" />  
 </set>   
     <one-to-one name="b"  class="B"  property-ref="aid"></one-to-one>   

 B.hbm.xml 

<set name="bbSet" lazy="true" inverse="true"           cascade="all-delete-orphan" >  
     <key column="B_ID" not-null="true" />   
    <one-to-many class="BB" />  
 </set>   

代码:
A a = …;   session.getTransaction().begin();   session.delete(a);   session.getTransaction().commit();  这样,就会把AA,B,BB里相关数据自动删除。

说明:

设置Hibernate级联删除,只需:

1.在父端的one-to-one/many-to-one关系:设置cascade=”delete”或cascade=”all”。

2.在父端的one-to-many关系(map, set, list, bag):设置cascade=”all-delete-orphan”或cascade=”all”。
即可。
分享到:
评论

相关推荐

    关于Hibernate级联删除的问题.doc

    关于Hibernate级联删除的问题.doc

    hibernate many-to-many级联保存,级联更新,级联删除

    hibernate many-to-many级联保存,级联更新,级联删除

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    inverse Hibernate_级联关系说明_-_关于cascade和inverse的用法

    解析Oracle中多表级联删除的方法

    方法一:创建约束时设定级联删除(但一般由于各种原因或出于各种考虑在创建数据库时没有设定级联删除)SQL语句: 代码如下:CREATE TABLE “U_WEN_BOOK”.”FARTAB” (“FAR_ID” NUMBER(10) NOT NULL,“FAR_NAME” ...

    详解Hibernate cascade级联属性的CascadeType的用法

    详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须...

    Spring+Hibernate一对多关联映射---部门与员工表的级联添加

    Hibernate 一对多关联映射的测试,主要使用部门与员工的级联关系进行添加测试.

    Hibernate3.1_学习源码

    其中数据库用到级联删除。配置文件分别用list、set和map元素配置第二张表。 07 07Hibernate_Mapping : Hibernate中的数据关联技术,是一个重点又是一个难点,演示了 一对一、多对一、一对多、多对多等几种情况。

    Hibernate+中文文档

    21.1. 关于collections需要注意的一点 21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. ...

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     7.2.2 级联删除  7.2.3 父子关系  7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存 ...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    7.2.2 级联删除 163 7.2.3 父子关系 164 7.3 映射一对多双向自身关联关系 165 7.4 改进持久化类 171 7.5 小结 175 7.6 思考题 176 第8章 通过Hibernate操纵对象(上) 179 本章站在持久化层的角度,Java对象...

    最全Hibernate 参考文档

    21.1. 关于collections 21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用...

    Hibernate中文详细学习文档

    21.1. 关于collections需要注意的一点 21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. ...

    struts hibernate增删改查

    基于Struts 2+Hibernate实现员工管理系统。一个单位有多个部门,每个部门有多名员工,每个员工只属于一...基于该要求,实现员工和部门的管理(包括添加、查询、删除和修改等操作),并且要实现部门与员工之间的级联操作。

    hibernate:一对多,多对多,一对一,乐观锁,二级缓存

    测试实现的功能: 一对一新增 一对多新增 多对多新增 多对多删除 乐观锁 一级缓存,二级缓存,读写并发 query 查询一级缓存 Criteria--基于条件查询 dao 实现测试

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    Hibernate 中文 html 帮助文档

    21.1. 关于collections需要注意的一点 21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:...

    hibernate 教程

    关于collections 16.2. 双向的一对多关系(Bidirectional one-to-many) 16.3. 级联生命周期(Cascading lifecycle) 16.4. 级联更新(Using cascading update()) 16.5. 结论 17. 示例:Weblog 应用...

    Hibernate教程

    22.1. 关于collections需要注意的一点 22.2. 双向的一对多关系(Bidirectional one-to-many) 22.3. 级联生命周期(Cascading lifecycle) 22.4. 级联与未保存值(Cascades and unsaved-value) 22.5. 结论 23. ...

Global site tag (gtag.js) - Google Analytics