gpt4 book ai didi

java - 级联为 ="all-delete-orphan"的集合不再被所属实体实例引用,如何处理?

转载 作者:行者123 更新时间:2023-12-01 20:00:09 32 4
gpt4 key购买 nike

这可能是什么问题?

Caused by: org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: com.en.test.father.Father.listSons
at org.hibernate.engine.internal.Collections.processDereferencedCollection(Collections.java:99)
at org.hibernate.engine.internal.Collections.processUnreachableCollection(Collections.java:50)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:243)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:86)
at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:44)
at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1251)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1962)
at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:322)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:125)
at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606)
at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:483)

我的 getter 和 setter 方法

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@JoinColumn(name = "FATHERID", nullable = false)
@OrderBy("id ASC")
public List<Sons> getListSons() {
return listSons;
}

public void setListSons(List<Sons> listSons) {
this.listSons.clear();
this.listSons.addAll(listSons);
}

我认为列表不应该初始化,而是应该清除,然后添加元素,但即使这样我也遇到了这个错误

最佳答案

您尚未显示您的域模型,但可能旧的儿子列表仍然引用父亲实体。将每个 Son 对象的 Father 字段设置为 null。它看起来像这样:

    public void setListSons(List<Sons> listSons) {
this.listSons.stream().forEach(oldSon -> oldSon.setFather(null));
this.listSons.clear();
this.listSons.addAll(listSons);
}

关于java - 级联为 ="all-delete-orphan"的集合不再被所属实体实例引用,如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008524/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com