因此,在我的一个实体中将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);
我找不到很多有关此的信息。
最佳答案
我解决了这个问题,原因是我创建了新的子实体并在其中引用了父实体,然后立即使用setter设置了父实体的子实体,这将导致先前持久化的子实体被取消引用并导致提到的例外。