【发布时间】:2016-03-22 11:47:16
【问题描述】:
我正在删除 entities 并因此从我的数据库中删除行。
我确实想删除某个实体及其所有child 行。但是,我不想从其Parent 中删除任何行。
我怎样才能做到这一点?
Kennel 是 Parent Entity,Dog 是我要删除的实体。
请参阅下面的代码,了解我如何将犬舍实体中的 2 链接起来:
@OneToMany(cascade = CascadeType.MERGE, orphanRemoval = false)
@JoinColumn(name = "KENNEL_ID", referencedColumnName = "ID", updatable = true, insertable = true)
private Set<Dog> dogs;
目前,当我删除狗实体时,其相关的犬舍实体正在也被删除。
编辑:将狗映射到犬舍:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "KENNEL_ID")
private kennel kennel;
【问题讨论】:
-
你能详细说明这个问题吗?当您删除
dog实体时,犬舍中的内容会被删除吗?最好能从数据库行的角度来解释一下,哪个表的哪一行被删除了。 -
整个 kennel 对象和行被删除
-
如何删除它们?
-
你能显示从 Dog 到 Kennel 的映射吗?如果您在那里有级联,那么这就是 Kennel 被删除的原因。
-
@java123999 删除
ManyToOne(cascade = CascadeType.ALL )中的cascade属性。使用此当前属性,当您删除 Dog 时,它也会传播到 Kennel 实体。
标签: java hibernate spring-data