Hibernate(JPA)级联 - 从子级检索id

Jer*_*oen 7 orm hibernate jpa

我有一个父类,其中包含以下带有级联选项的字段:

public class Parent {
  @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
  @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
  private final Set<Child> children = new HashSet<Child>();
  public addChild(Child child) { children.add(child); }
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我想添加一个子项,然后在父类上调用JPA merge,自动保持我的新子项.这一切都有效,但是,我插入到父对象中的原始子引用已更改,这意味着我无法检索持久子代的ID.有什么方法可以告诉hibernate重新使用我的旧子引用而不是创建一个新的引用吗?在合并期间

Boz*_*zho 1

只需获取父级的合并实例:

parent = entityManager.merge(parent);
Run Code Online (Sandbox Code Playgroud)

更新:

你想要的东西是不可能的。手动添加merge()子级,然后将其添加到父级,或者从父级集合获取新的子级实例并使用它。