【发布时间】:2021-04-04 02:17:41
【问题描述】:
我有两个实体。
@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;
}
当我删除父实体时 - 子实体会自动删除。 如何在不删除子项的情况下删除父项?
【问题讨论】:
-
不要级联所有,至少排除 REMOVE。此处的情况并非如此,因为此注释默认为 false,但请查看
@OneToOne的 orphanRemoval 属性。 -
@KenS 默认情况下,orphanRemoval 值为“false”。但是当我尝试删除paren实体时 - 子实体也被删除
-
重点是第一句话。请参阅 Harry_T 的答案。关于 orphanRemoval 的部分只是一个旁注,因为这可能是其他映射的问题,实际上默认情况下它是“true”。
标签: java spring-boot hibernate spring-mvc spring-data-jpa