`

Hibernate学习之级联操作

阅读更多

Hibernate学习之级联操作:
级联操作
Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade:
none,all,save-update ,delete, lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many) 。一般对many-to-one,many-to-many不设置级联,在<one-to-one>和<one-to-many>中设置级联。
比如: Department <---->Student 对象关系,我希望当我删除一个department ,那么就自动删除该部门的所有学生
再比如: bbs项目
主帖<---->回帖 , 把主帖删除,那我们就希望把该主帖的回帖自动删除,这样我们可以使用级联(cascade)操作

案例:如何配置级联操作,当删除某个部门的时候,我们自动删除其学生.
首先我们在 配置文件中修改:
<!-- 配置one-to-many关系
 cascade="delete" 当删除该部门的时候(主对象,则级联删除它的学生从对象) -->
<set name="stus" cascade="delete" >
<!-- 指定Student类对应的外键 -->
<key column="dept_id" />
<one-to-many class="Student" />
</set>

java代码中操作:
//演示删除级联
//获取到某个部分
Department department=(Department) s.get(Department.class, 41);
s.delete(department);

演示save-update
配置文件:
<set name="stus" cascade="save-update" >
<!-- 指定Student类对应的外键 -->
<key column="dept_id" />
<one-to-many class="Student" />
</set>
代码:
//添加学生
Department department=new Department();
department.setName("业务部门3");           
Student stu1=new Student();
stu1.setName("张三6");
//stu1.setDept(department);
Student stu2=new Student();
stu2.setName("小明6");
//stu2.setDept(department);
Set<Student> students=new HashSet<Student>();
students.add(stu1);
students.add(stu2);
department.setStus(students);
s.save(department);

注意:
① 在集合属性和普通属性中都能使用cascade
② 一般讲cascade配置在one-to-many(one的一方,比如Employee-Department),和one-to-one(主对象一方)

分享到:
评论

相关推荐

    struts+hibernate+ajax级联菜单

    在级联菜单中,可能涉及到多级分类的数据,如省份、城市、区县等,Hibernate可以通过实体类与数据库表进行映射,使得开发者无需编写大量的SQL语句,即可实现对数据库的增删查改操作。例如,当用户选择一个省份时,...

    Hibernate_范型_级联

    综上所述,这些文件涵盖了Hibernate中范型的应用、级联操作的原理以及不同关联类型的配置和测试。通过学习和实践这些内容,开发者能够更好地掌握Hibernate在实际项目中的使用,提高数据库操作的效率和代码的健壮性。

    用Struts2+Spring+Hibernate三大框架完成的级联操作

    在级联操作中,Hibernate可能被用来处理省市县和年月日的数据存取,通过HQL(Hibernate Query Language)或者Criteria API来执行SQL查询,获取级联选择的数据。 级联操作的核心在于数据间的关联,例如选择一个省后...

    用hibernate做的省市县三级级联,

    在IT行业中,尤其是在Web开发领域,省市县三级级联是一个常见的需求,主要用于用户选择地址时提供方便的下拉...开发过程中涉及了ORM、MVC架构、数据库操作以及前端交互等多个方面,是学习和实践Web开发技能的好实例。

    Hibernate学习文档集合

    《Hibernate学习文档集合》 Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。本集合包含了三个关键的学习文档,分别关注于Hibernate的操作基础、对象关系映射和...

    hibernate的应用表之间的级联关系

    **一、级联操作类型** 1. **SAVEOrUpdate**:当主实体保存或更新时,关联实体也会被保存或更新。如果关联实体不存在,它会被创建;如果已存在,其状态将根据需要更新。 2. **DELETE**:删除主实体时,会同时删除...

    hibernate3.2级联关系自身一对多双向关联

    首先,级联关系是指当对主对象进行某些操作(如保存、更新、删除等)时,这些操作也会自动应用到与之相关联的从属对象上。这减少了代码量,并保持了数据的一致性。在Hibernate中,可以通过在`@ManyToOne`或`@...

    hibernate学习资料大合集

    这两份PDF文档可能是官方的完整教程或参考手册,不仅覆盖了基础内容,还可能涉及高级特性,如缓存机制、二级缓存、多态性、集合映射、级联操作、事件监听器以及性能优化策略等。深入学习这些内容,可以提升开发者在...

    SSH+JQuery+MySQL级联操作(省市县级联)

    在这个“SSH+JQuery+MySQL级联操作(省市县级联)”的案例中,我们将深入探讨如何利用这些技术实现一个省市县三级联动的效果。 首先,让我们了解什么是级联操作。级联操作通常指的是在一个选择发生变化时,相关的...

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    10_传智播客JPA详解_JPA中的一对多双向关联与级联操作

    在Java世界中,Java Persistence API(JPA)是Oracle公司推出的用于对象关系映射(ORM)的标准框架,它...通过学习本教程,你将能够熟练掌握JPA中的一对多双向关联及级联操作,从而在开发中更加高效地管理数据库数据。

    struts2 hibernate 框架 三级城市级联

    Struts2和Hibernate是两种非常重要的Java Web开发框架,它们分别负责表现层和持久层的管理。...通过这个三级城市级联的例子,我们可以深入学习这两个框架的结合使用,进一步提升我们的Java Web开发技能。

    hibernate学习总结文档

    关联关系可以通过外键或代理键实现,配置包括懒加载(lazy loading)和级联操作(cascading)。 **缓存机制** Hibernate 提供了缓存策略以提高性能,包括一级缓存(Session 缓存)和二级缓存(可选,如 EhCache)...

    hibernate_second2项目源码

    在这个项目中,我们将深入探讨Hibernate的级联操作,以及如何实现数据的级联保存,这对于理解和应用Hibernate在实际开发中的关系映射管理至关重要。 Hibernate是Java领域中广泛使用的对象关系映射(ORM)框架,它...

    jdbc和hibernate学习内容

    8. **懒加载和级联操作**:了解如何配置和使用懒加载以优化性能,以及如何设置级联操作以简化对象间的关联操作。 总的来说,掌握JDBC和Hibernate对于Java开发者来说是至关重要的,它们是连接Java应用程序与数据库的...

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    hibernate API帮助文档 及hibernate学习笔记

    Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。

    hibernate学习文档

    - **隐式保存**:通过级联操作自动保存相关对象。 - **批量保存**:使用 `session.saveOrUpdate()` 或 `session.merge()` 方法。 ##### 3.2 查询机制 Hibernate 提供了两种查询方式: - **HQL(Hibernate Query ...

    Hibernate学习笔记与总结

    **Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...

Global site tag (gtag.js) - Google Analytics