java - 如何在不删除子实体的情况下删除父实体?
问题描述
我有两个实体。
@Entity
class Parent(){
@Id
private UUID id;
private String someValue;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "child_id", referencedColumnName = "id")
private Child child;
}
@Entity
class Child(){
@Id
private UUID id;
private String someVariable;
private Integer someValue;
}
当我删除父实体时 - 子实体会自动删除。如何在不删除孩子的情况下删除父母?
解决方案
有很多CascadeType
(PERSIST,MERGE,REMOVE,REFRESH,...)。注释行@OneToOne(cascade = CascadeType.ALL)
假设您正在组合所有 cascadeType。删除时将CascadeType.REMOVE
删除当前行的所有相关子项。为避免这种情况,只需将您的级联类型更改为以下@OneToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH})
推荐阅读
- python - 在 PyTorch 中保存模型的框图
- mysql - 试图将这些结合在一起,但我不知道它告诉我什么:将数据类型 varchar 转换为 bigint 时出错
- node.js - 如何在插入之前对密码进行哈希处理?
- firebase - 如何在不使用 Firestore 的情况下使用 FCM 向用户设备推送通知
- powershell - Powershell - 在电子邮件上调用 Move 函数会导致输出极其冗长
- python - 为什么我不能对此子流程模块方法返回的“字符串”执行正则表达式?
- gsuite-addons - 与外部用户共享 gsuite 插件而不发布到 Marketplace 的正确方法是什么?
- java - 使用java流替换嵌套循环连接字符串的最佳方法
- c# - 如何与传入消息进行字符串比较
- angular - ZEIT Now Angular PWA 手柄 404