一尘不染

Hibernate-拥有实体实例不再引用具有cascade =“ all-delete-orphan”的集合

hibernate

尝试更新我的实体时遇到以下问题:

"A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance".

我有一个父实体,并且有Set<...>一些子实体。当我尝试更新它时,我将获取所有要设置为此集合的引用并进行设置。

以下代码表示我的映射:

@OneToMany(mappedBy = "parentEntity", fetch = FetchType.EAGER)
@Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN })
public Set<ChildEntity> getChildren() {
    return this.children;
}

根据此,我尝试仅清理Set
<..>:如何“可能”解决问题,但没有成功。

如果您有任何想法,请告诉我。

谢谢!


阅读 602

收藏
2020-06-20

共1个答案

一尘不染

实际上,我的问题是关于实体的等于和哈希码。遗留代码会带来很多问题,永远不要忘记对其进行检查。我所做的只是保留删除孤岛策略并更正equals和hashcode。

2020-06-20