Hibernate (JPA) 级联 - 从 child 那里检索 id

标签 hibernate orm 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); }
}

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

最佳答案

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

parent = entityManager.merge(parent);

更新:

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

关于Hibernate (JPA) 级联 - 从 child 那里检索 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177828/

相关文章:

php - 如何在 Symfony 中手动调度 Doctrine/Kernel 事件?

java - MVC Spring Boot 和 JPA 关系

java - JPA 关系实体在数据库上更新,但不在现场更新

java - 从 Spring MVC - DAO 项目迁移到 Spring Boot

java - Junit:为删除实体的方法编写测试?

java - 如何将 hibernate 与 MS Access 一起使用?

java - org.hibernate.hql.internal.ast.QuerySyntaxException : Employee is not mapped

java - 为什么 Hibernate 有时会加载错误子类的实例?

java - 通过 hibernate 连接到 MS sql

java - 如果我删除了一个不管理此关联的实体,是否有办法让 Hibernate 处理删除 @ManyToMany 关联中的条目?