java - 如何在不级联删除 ChildEntities 的情况下删除(@ManyToOne)实体?
问题描述
我在 Spring,JPA 设置中获得了以下实体:
@Entity
public class Person {
@Id
//Id
//some object variables
@ManyToOne(fetch = FetchType.EAGER)
private Person mother;
@ManyToOne(fetch = FetchType.EAGER)
private Person father;
}
我想删除一个人,即另一个人的母亲/父亲。与我发现的其他帖子相反,我只想删除该特定人员以及与该实体相关的所有外键。这样子实体在数据库中保持不变(父级的外键除外)。我错过了一种简单的方法吗?
解决方案
有什么问题?如果您删除一个人,则通过 *ToOne 关联引用该人的其他对象的外键列将设置为空。如果您对数据库有一个非空约束,您将得到数据库的空约束违规。
推荐阅读
- ios - Swift / iOS - 推送新视图控制器时保留 UINavigationItem
- bash - 使用 Ubuntu 的多机 Vagrant - Sinatra 和 PostgreSQL
- c# - 透明的自定义图形用户控件:在运行时变黑
- sql-server - Presto 运行速度比 SQL Server 慢
- c# - 在使用 C#.NET 的方法中正确并行化许多小任务
- c# - 将行数据从 LINQ 中的分组数据转换为列
- mstest - 如何配置 SpecFlow 以使用 MS Test v2 中的 [DoNotParallelize] 属性?
- excel - 将 Excel 行单元格放在彼此下方的一列中,其序列号重复
- c++ - 用算法查找回文
- laravel - 当函数中有多个联合表时按表过滤