尝试更新我的实体时遇到以下问题:
"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<..>,根据这个: How to “possible” solve the problem 但它没有用。
如果您有任何想法,请告诉我。
谢谢!
原文由 axcdnt 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上,我的问题是关于我的实体的 equals 和 hashcode。遗留代码会带来很多问题,永远不要忘记检查它。我所做的只是保留删除孤儿策略并纠正等于和哈希码。