我有以下实体:
@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
实体,则不会自动填充父对象。
有什么方法可以实现?
this应该有帮助。
如果要在Child
和Parent
实体之间提供正确的参考,并延迟Parent
实体的实际加载。您应该这样做:
Child newChild = new Child();
newChild.setParent(entityManager.getReference(Parent.class, parent_id));
// ...
entityManager.persist(newChild);