因此,在我的一个实体中将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设置了父实体的子实体,这将导致先前持久化的子实体被取消引用并导致提到的例外。

08-04 17:02