JPA 级联删除

2024 年 8 月 29 日 | 阅读 3 分钟

级联删除用于指定如果删除父实体,则其所有相关实体也将被删除。以下语法用于执行级联删除操作: -

级联删除示例

在此示例中,我们将创建两个彼此相关的实体类,但为了建立它们之间的依赖关系,我们将执行级联操作。

此示例包含以下步骤: -

  • 创建一个名为 StudentEntity.java 的实体类,该类位于 com.javatpoint.jpa.student 包下,包含属性 s_id、s_name、s_age 以及一个使用级联规范标记的 Subject 类型的对象。

StudentEntity.java

  • 创建另一个名为 Subject.java 的实体类,该类位于 com.javatpoint.jpa.subject 包下。

Subject.java

  • 现在,在 Persistence.xml 文件中映射实体类和其他数据库配置。

Persistence.xml

  • 创建一个名为 StudentCascade.java 的持久化类,该类位于 com.javatpoint.jpa.cascade 包下,用于持久化具有数据的实体对象。

StudentCascade.java

输出

程序执行后,将在 MySQL workbench 下生成以下表。

  • 学生表 - 将从学生表中删除 s_id 为 101 的学生的详细信息。要获取数据,请在 MySQL 中运行 select * from student 查询。

JPA Cascade Remove
  • 科目表 - 由于级联删除,与 s_id 101 相关的详细信息也将从科目表中删除。要检查结果,请在 MySQL 中运行 select * from subject 查询

JPA Cascade Remove
下一主题JPA JPQL 介绍