级联保存和更新
当hibernate持久化一个临时对象时,在默认的情况下,不会自动持久化其关联的其他临时对象.如果希望同时持久化其相关的的其他临时对象,则可以把<many-to-one>的cascade属性值改为"sava-update",其默认值"none".
例如:当使用:
<many-to-one
name="customer"
cloumn="CUSTOMER_ID"
class="mypack.Customer"
/>
tx=session.beginTransaction();
Customer customer=new customer("jack");
//session.save(customer);//不保存customer对象,customer为临时对象
Order order1=new Order('jack01',customer);
Order order2=new Order('jack02',customer);
session.save(order1);//将抛出异常
session.save(order2);
当hibernate清理(flush,按持久化对象的状态来更新数据库)缓存中所有持久化对象时,抛出TransientObjectException异常.内存中的持久化状态和数据库记录不一致导致了这一异常,内存中order1对象引用了customer,而在数据库中CUSTOMER_ID字段值为null.
当使用
<many-to-one
name="customer"
cloumn="CUSTOMER_ID"
class="mypack.Customer"
cascade="save-update"
/>
tx=session.beginTransaction();
Customer customer=new customer("jack");
//session.save(customer);//不保存customer对象
Order order1=new Order('jack01',customer);
Order order2=new Order('jack02',customer);
session.save(order1);//将通过cascade属性值”save-update“进行级联更新
session.save(order2);
总结(引用某博友的内容):
Save-update 保存、更新Customer会同步更新Order.
Delete 同步删除
All 包含save-update和delete操作,另外调用当前对象的evice或者lock时,对关联对象也调用相应方法。
Delete-orphan 删除所有和当前对象解除关联关系的对象。
All-delete-orphan 当关联双方为父子关系是(父亲控制孩子的持久化生命周期),如果父方删除,子方自动删除(同delete),如果子方无父亲,子方应删除。包含Delete和all-orphan的行为。
分享到:
相关推荐
标题:Hibernate学习笔记3 描述:本篇笔记深入探讨了Hibernate框架中一对多关系的映射及持久化对象状态管理,结合个人理解与实践经验,旨在为读者提供一份详实的学习资料。 ### 一、一对多关系映射详解 在...
本篇学习笔记将深入探讨Hibernate3.2的核心概念,包括环境搭建、主要接口、映射方式以及性能优化策略。 首先,让我们从搭建Hibernate3.2开发环境开始。在创建一个新的Java项目后,我们需要添加必要的库文件,主要...
这篇文章将深入探讨Hibernate中的一对多关联映射,这是一种常见的关系数据库模型,在实际开发中经常遇到。我们将从基本概念、配置、映射文件以及具体示例等方面进行详细讲解。 **一对多关联映射基础** 在数据库...
本篇将基于“学习Hibernate第二天”的主题,结合“源码”和“工具”这两个标签,深入探讨Hibernate的一对一主键关联双向映射,以及如何在实际开发中利用这一特性。 在Java对象关系映射(ORM)框架中,数据模型通常...
在本篇 Hibernate 学习笔记中,我们将深入探讨多种关联关系的映射,以及相关概念。Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,简化了数据访问层的开发工作。 首先,...
【标题】:“Hibernate学习” 【描述】:在Java开发领域,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。通过提供一套API,Hibernate允许开发者使用面向对象的方式来处理数据库交互,...
《Hibernate学习笔记详解》 Hibernate,作为Java领域中的一款强大持久化框架,为开发者提供了对象-关系映射(ORM)的解决方案,极大地简化了数据库操作。这篇笔记将深入探讨Hibernate的核心概念、映射关系和内存...
本篇文章将基于“hibernate3.0立体文档”中的32个示例,深入探讨Hibernate的核心概念、工作原理以及常见用法。 一、Hibernate概述 Hibernate是Java开发中的一个持久化框架,它通过提供一种对象-关系映射机制,将...
【标题】:“Hibernate JPA学习” 【描述】:在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,而JPA(Java Persistence API)是Java平台上的标准持久化API。这篇博客的文章链接虽然没有提供具体...
本篇文章将深入探讨Hibernate的核心概念、对象模型与关系数据库模型的差异以及如何通过Hibernate实现对象关系映射。 一、Hibernate的意义 在面向对象的软件设计中,我们通常会通过UML建模工具,将业务逻辑和数据...
本篇我们将深入探讨Hibernate中的一对一(OneToOne)关联映射,并通过一个具体的测试案例进行解析。 ### 1. 一对一关联概念 一对一关联是指两个实体类之间存在唯一的对应关系,即一个实体对应另一个实体的一个实例...
本篇将重点探讨Hibernate中的Many-to-One关系映射,帮助开发者更深入地理解和运用这一关键特性。 Many-to-One关系是现实世界中常见的关联类型,一个实体可能对应另一个实体的多个实例,例如,一个员工可以属于一个...
本篇将详细讲解如何在Hibernate中使用外键`ForeignKey`,以及通过一个简单的例子帮助学习者深入理解其配置与操作。 首先,外键是数据库设计中的一个重要概念,它用于建立两个表之间的关联,通常用来维护数据的一致...
这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java注解的基本概念。注解是一种元数据,它提供了在编译时或运行时处理类、方法和属性的能力。在Hibernate中,注解用于声明实体类...
本篇将详细介绍Hibernate 3.3.2版本的相关知识点。 1. **对象关系映射(ORM)**:Hibernate是ORM框架的代表,它通过在Java对象和数据库表之间建立映射,使得开发人员可以像操作普通Java对象一样操作数据库,减少了...
在本篇关于“Hibernate3.2(六)多对一关联映射”的主题中,我们将深入探讨在Java Persistence API(JPA)框架下,如何利用Hibernate实现多对一的关联映射。Hibernate作为JPA的一个实现,是Java开发中常用的ORM...
"HibernateORM"可能是包含有关Hibernate ORM框架的详细信息的文件夹或压缩包,里面可能包含示例代码、教程文档或其他资源,用于辅助学习和理解Hibernate ORM的一对多双向关联。 **知识点详解:** 1. **Hibernate ...
通过深入学习和实践这些知识点,开发者能够熟练掌握Hibernate框架,提升Java应用程序的数据库操作效率和代码质量。在实际项目中,Hibernate能有效降低开发成本,提高开发效率,是现代Java企业级应用的必备工具之一。
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系模型,它用于处理两个实体类之间存在多个...学习和实践这部分内容对于提升Java后端开发能力,特别是使用Hibernate进行数据持久化操作,有着重要的意义。
这篇教程将深入探讨Hibernate中的注释及其在实际开发中的应用。 一、Hibernate注释基础 1. `@Entity`: 这个注释标记一个Java类为持久化实体,意味着这个类的实例将在数据库中有一个对应的表。例如: ```java @...