一.概念
- 现有一场景:一个管理员可以管理多个网吧,一个网吧可以被多个管理员管理。从中抽象出一个多对多的例子user-bar。
- 主控方user:多对多里面里面会有第三张表user_bar,由主控方维护这里面的外键记录,也就是创建一个user的时候必须指定其管理的bar。
- 被控方bar:没有权利更新外键记录。单独创建一个bar,不需要也不能指定其属于哪个user。
二.
CascadeType
- CascadeType.MERGE:级联更新。创建一个user的时候,指定其管理哪些bar,如果某一个bar不存在,会在创建user的时候一起创建。
- CascadeType.PERSIST:级联保存。创建一个user的时候,指定其管理哪些bar,如果某一个bar不存在,抛出异常。所以指定其管理哪些bar必须是事先存在的。
- CascadeType.REMOVE:级联删除。删除一个user的时候,会删除它管理的bar,最终是user_bar里面删了,bar里面也删了。如果不指定CascadeType.REMOVE,只删user_bar里面。
- CascadeType.REFRESH:级联刷新。第一次查询某一user和第二次查询同一user之间,删除了某一bar,CascadeType.REFRESH是的任何时候看到的都是最新的记录(两次查询结果不一样)。
- CascadeType.ALL:包含以上所有。
三.
使用
- 根据具体的场景要指定不同的Type。
- user和bar之间的关系,并没有说user不存在了,网吧就不存在,所以不能用CascadeType.REMOVE。
- 保存一个user的时候,指定他能够管理的网吧必须是已经存在的,所以CascadeType.MERGE和CascadeType.PERSIST中用CascadeType.MERGE。
四.
吐槽
第一次接触CascadeType,去网上找资料的时候,NM,全部是一样的文章,甚至连错误都是一起copy过去的,真不赞同这样的学习方式。
分享到:
相关推荐
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它使得开发者能够将数据库操作转换为面向对象的方式,极大地提高了开发效率。本文主要探讨的是Hibernate中的一对多关联映射,这是一种常见的关系...
Hibernate框架中,CascadeType是hibernate的重要属性之一,它控制着实体之间的级联操作。CascadeType是hibernate中的枚举类型,定义了多种级联操作,包括REFRESH、PERSIST、REMOVE、MERGE、ALL等。 CascadeType....
本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...
本教程将重点讲解如何在Hibernate中实现多对一的映射关系,采用的是注解方式进行配置。 **一、多对一关系** 在数据库设计中,多对一关系表示一个实体可以与另一个实体的多个实例相关联。例如,一个部门可以有多名...
本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多关系 在现实生活中,例如一个班级有一个班主任,而班主任可以管理多个学生,这就是典型的“一对多”关系。在Hibernate中,我们...
在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本篇文章主要探讨的是Hibernate中的...通过深入学习和实践,开发者能够熟练地在项目中运用Hibernate的一对多关联,提高开发效率和代码质量。
综上所述,Hibernate的一对一关联映射通过注解方式提供了便捷的数据库表与Java对象之间的绑定,理解并正确使用这些注解对于优化数据访问性能、保证数据一致性至关重要。在设计数据库模型时,应充分考虑实体之间的...
对于"hibernate双向一对多关联映射(注解版)",我们可以按照以下步骤进行: 1. **定义实体类**:首先,我们需要创建两个实体类,例如`Parent`和`Child`。在`Parent`类中,`Child`是一个集合,而在`Child`类中,`...
在Java世界中,Java Persistence API(JPA)是Oracle公司推出的用于对象关系映射(ORM)的标准框架,它...通过学习本教程,你将能够熟练掌握JPA中的一对多双向关联及级联操作,从而在开发中更加高效地管理数据库数据。
**一、Hibernate注解基础** 在Hibernate 3.2之后,引入了注解支持,使得开发者不再需要XML配置文件来定义实体类和映射关系。主要的注解包括: 1. `@Entity`:标记一个Java类为Hibernate实体类,对应数据库中的表。...
"Hibernate注解一对多,多对一"是两个常见的关系映射类型,适用于处理实体类之间的复杂关联。 一、一对多关系 在现实世界中,例如一个部门有多个员工,这就是一对多的关系。在Hibernate中,我们可以使用`@...
Hibernate 注解映射是 Hibernate 框架中的一种映射方式,它使用 Java 注解来描述实体类和数据库表之间的映射关系,提高开发效率。 一、 环境搭建和基本映射 在使用 Hibernate 注解映射之前,需要添加相关的 jar 包...
在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射...通过上述内容,你应该对使用Hibernate注解实现一对一主键关联有了清晰的理解。在实际项目中,可以根据具体需求调整关联策略,优化数据访问效率。
在JavaEE开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入...
《Hibernate学习资料详解》 Hibernate,作为Java领域中的一款强大持久化框架,是开发者们进行数据库操作的重要工具。本学习资料主要围绕Hibernate的核心概念、配置、实体映射、关联映射以及级联操作等方面展开,...
本实例将深入探讨Hibernate中的三种基本关联关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)的实现方式。 1. **一对一关联**: 一对一关联通常出现在两个实体之间存在唯一对应关系...
这个注解告诉Hibernate,Employee类中有一个字段与另一个实体类(例如Department)存在一对多的关系。例如: ```java @Entity public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)...
在Hibernate中,关系注解用于在实体类中定义不同类型的数据库关系,如一对一、一对多、多对多等。以下是关于Hibernate关系注解的详细说明: 1. **一对一外键关联映射(单向)** 使用`@OneToOne`注解实现一对一关系...