【发布时间】:2020-04-27 19:05:33
【问题描述】:
因此,在我的一个实体中将orphanRemoval = true 添加到@OneToMany 关系后,我在尝试保存新实体或删除引用具有orphanRemoval = true 属性的现有实体时遇到以下异常。
我得到的例外是:
拥有的实体实例不再引用具有 cascade="all-delete-orphan" 的集合:fully.qualified.path.to.the.property.with.orphanRemoval.setToTrue
一对多关系是这样指定的:
@OneToMany(
targetEntity = MyEntity.class,
fetch = FetchType.LAZY,
mappedBy = "mappingField_",
orphanRemoval = true,
cascade = CascadeType.ALL)
private List<MyEntity> myEntities_= new ArrayList<>();
当我尝试保存和刷新实体时出现异常:
myEntityRepository_.saveAndFlushAndRefresh(myEntityInstance);
我找不到很多关于此的信息。
【问题讨论】:
-
你检查过this answer吗?要点:不要通过setter设置list
myEnitities_,使用add/remove方法改变它,并确保你的equals/hashCode()方法正确实现(如果某些字段改变hashCode可能会改变) -
@AlexRudenko 感谢您的帮助,但这不是主要原因。