`
neeleon
  • 浏览: 184511 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate入门(九)关联关系中的高级应用_级联操作

阅读更多

 

1. 级联操作

在前面的一对多操作中已经有所体现,现在回到前面的一对多操作中,进行一些修改,修改内容如下:

Set<Employee> emps = new HashSet<Employee>();

emps.add(emp1);

emps.add(emp2);

depart.setEmps(emps);
去掉这段注释,并把s.save(emp1); s.save(emp2); 注释掉,然后运行发现出错。原因是:当我们保存Department depart 对象时,发现它所关联到的两个Employee   emp 对象并未保存,而这种要依赖别的对象的操作即是级联操作,级联操作主要体现在关联关系中,且是可配置的,只是默认的级联操作是被设为”none”, 而如果我们希望进行级联操作,只需要在<set> 配置中增加cascade 属性,比如我们现在Department.hbm.xml <set> 元素下增加 cascade = "save-update" 属性后,再来执行会发现正常,原因是Hibernate 进行了级联操作,相当Hibernate 帮我们写了注释掉的“s.save(emp1); s.save(emp2) ”这两句内容。下面列表说明级联操作的可选值。

cascade 属性值

功能作用描述

none

在保存、修改对象时,不对与之关联的对象进行任何操作,它作为cascade 默认值。

save-update

当保存或修改对象时,级联保存所有与之关联的临时对象,级联更新所有与之关联的脱管(游离)对象。

delete

当删除时,级联删除所有与之关联的对象

all

包括save-updatedelete 两种行为

delete-orphan

删除所有和本对象解除关联关系的对象,主要表现在“一对多”中。

all-delete-orphan

包括alldelete-orphan 的行为

说明 :(1cascade 可以在<set><list><bag><map> 中进行配置,即在“多对一”、“一对多”、“多对多”、“一对一 这些关联关系中,“级联”都是可配的在一般的对象中不能配置。(2 )可以为其配置多个属性值,中间用逗号分隔。如cascade=”save-update,delete”.(3) 一般只在“一对一  一对多”配置级联,而不会在“多对一 多对多”中配置级联,但在配置时最好的方法是根据实际情况进行配置。现举例说明:比如在“部门和员工”之间,如果我们希望部门取消时,属于该部门的员工并不会被取消,而是分到的别的部门,我们就不应为cascade 配置“delete ”值。

 

分享到:
评论

相关推荐

    Hibernate入门(代码+笔记)

    **Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...

    hibernate入门--第一个实例

    在这个“hibernate入门--第一个实例”中,我们将了解如何设置Hibernate环境,创建实体类,配置映射文件,以及执行基本的CRUD(创建、读取、更新和删除)操作。 1. **环境搭建** - **下载与安装**: 首先,你需要从...

    最经典的hibernate教程_从入门到精通_第三篇

    5. **级联操作**: 对于一对多、多对一等关联关系,Hibernate支持级联操作,如在删除父对象时可同时删除所有子对象,或者在保存父对象时自动保存所有子对象。 6. **懒加载与立即加载**: 懒加载是一种优化策略,只...

    hibernate官方入门教程 (转载)

    总结,这份“hibernate官方入门教程”可能会教授如何配置Hibernate环境,创建实体类,建立表映射,使用Session和Transaction进行数据操作,以及探索更高级的主题如查询语言、缓存和事务管理。同时,"Lowerthan60's ...

    hibernate入门与概述

    【hibernate入门与概述】 Hibernate 是一个流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库,将Java类与数据库表进行映射,从而简化数据库操作。本文主要涵盖以下几个核心概念: 1....

    hibernate hellowrold入门级代码

    在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联,从而简化数据操作。 首先,Hibernate的核心是配置文件(hibernate.cfg.xml),它定义了数据源、数据库连接信息以及映射的类和表。在`...

    01_传智播客hibernate教程_hibernate介绍与动手入门体验

    10. 引入关联和级联操作:讨论如何处理实体之间的关联,如一对一、一对多、多对一和多对多,以及级联操作的使用。 11. 缓存机制:解释Hibernate的缓存策略,包括一级缓存和二级缓存,以及它们在性能优化中的作用。 ...

    Hibernate入门(下)

    在本节中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架,以便初学者能够更好地理解和应用它。Hibernate允许开发人员将数据库操作转化为简单的Java对象操作,极大地简化了数据访问层的代码。 一...

    hibernate入门学习

    通过运行这个示例,你可以更好地理解Hibernate一对多关系配置、反转和级联操作的实际应用。 总的来说,Hibernate为开发者提供了一个强大的工具,简化了数据库操作,使我们能够专注于业务逻辑的实现,而不是底层的...

    hibernate3完整入门示例含jar包

    **标题:“Hibernate3完整入门示例含jar包”** Hibernate是一个强大的Java库,它作为对象关系...在实际应用中,还要不断学习和理解更高级的特性,如缓存策略、级联操作、多表关联等,以提升开发效率和项目的可维护性。

    MyEclipse Hibernate 快速入门中文教程

    【MyEclipse Hibernate 快速入门中文教程】 MyEclipse是一款强大的Java集成开发环境,而...在实践中不断探索,理解Hibernate的高级特性,如查询优化、性能调优、复杂关系映射等,将有助于提升Java开发效率和代码质量。

    hibernate入门的第一次代码

    【hibernate入门的第一次代码】是一个针对初学者的指南,旨在帮助他们了解并开始使用Hibernate框架。Hibernate是一个流行的开源对象关系映射(ORM)工具,它允许Java开发者以面向对象的方式操作数据库,减少了手动...

    Hibernate入门

    ### Hibernate入门知识点...以上是关于Hibernate入门的基本知识点介绍,包括了Hibernate的概述、环境搭建、基本操作以及常见的关联映射方式等内容。希望这些内容能帮助初学者快速了解Hibernate的基本用法及其强大之处。

    Hibernate入门-搭建框架实现基本的增删改查(源码)

    **Hibernate入门:搭建框架实现基本的增删改查** Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。在本教程中,我们将深入理解Hibernate的基本概念,并通过实例演示如何...

    [原]在MyEclipse中开发Hibernate入门

    在MyEclipse中开发Hibernate入门 Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据。这篇文章将带你一步步地了解如何在MyEclipse环境中...

    Hibernate入门(上)

    **Hibernate入门(上)** Hibernate 是一款开源...在后续的"Hibernate入门(下)"中,我们将深入探讨更多高级特性,如二级缓存、延迟加载和关联映射等。通过实践,你会发现Hibernate极大地提高了开发效率和代码质量。

    Hibernate简洁入门工程

    在"Hibernate简洁入门工程"中,开发者可以找到关于如何配置Hibernate,创建实体类,以及进行基本数据库操作的示例代码。通过学习这个工程,可以快速掌握Hibernate的基本用法,为后续的ORM开发打下基础。

    Hibernate3.2_API

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作与对象模型进行松耦合,使得在Java应用中处理数据库变得更加简单。Hibernate3.2_API 是一套针对该版本的API文档和指南,对理解并使用...

    hibernate入门需要的包

    Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互。对于初学者来说,了解...在实际项目中,还会涉及到更多高级特性和最佳实践,如事务管理、级联操作、批处理等,需要不断深入学习和探索。

    hibernate_one_to_one映射简单入门例子

    在Java编程中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式。在数据表之间,有一种常见的关联关系是一对一(One-to-One),即一个实体对应另一个实体的唯一实例。...

Global site tag (gtag.js) - Google Analytics