如何在持久化新实体后用其父实体的信息填充实体中的字段

问题描述 投票:0回答:1

我有以下实体:

@Entity()
public class Parent {

    @Id
    private Long id;

    private String name;

    ...

}
@Entity()
public class Child {

    @Id
    private Long id;

    private String name;

    @Column(name = "parent_id")
    private long parent_id;

    @ManyToOne(targetEntity = Parent.class)
    @JoinColumn(name = "parent_id", insertable = false, updatable = false)
    private Parent parent;

    ...

}

Child实体必须始终具有Parent实体。

我希望Child类具有parent_id作为字段,并具有其父项的所有字段都为Parent对象。

这样,我可以保存仅具有Child ID的Parent实体,理想情况下,当从数据库中检索Child时将填充Child内部的父对象。

[我已经实现了,从数据库中检索Child时,父字段填充有Parent实体,但是如果我仅使用parent_id坚持新的Child实体,则不会自动填充父对象。

有什么方法可以实现?

java hibernate jpa
1个回答
0
投票

this应该有帮助。

如果要在ChildParent实体之间提供正确的参考,并延迟Parent实体的实际加载。您应该这样做:

  Child newChild = new Child();
  newChild.setParent(entityManager.getReference(Parent.class, parent_id));
  // ...
  entityManager.persist(newChild);
© www.soinside.com 2019 - 2024. All rights reserved.