我有一个带有以下字段的父类,带有级联选项:
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); }
}
在我的应用程序中,我想添加一个 child ,然后在父类上调用 JPA 合并,自动持久化我的新 child 。这一切都有效,但是,我插入到父对象中的原始子引用已更改,这意味着我无法检索持久化子对象的 ID。有什么办法可以告诉 hibernate 重新使用我的旧 child 引用而不是制作新的引用吗?合并期间
最佳答案
只需获取您的父级的合并实例:
parent = entityManager.merge(parent);
更新:
你想要的是不可能的。要么手动
merge()
子,然后将其添加到父对象,或者从父集合中获取新的子实例并使用它。
关于Hibernate (JPA) 级联 - 从 child 那里检索 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177828/