考虑类 Parent:
{
...
@OneToMany(cascade=CascadeType.ALL,mappedBy = "parent")
Set<Child> children;
...
}
和类 child :
{
...
@ManyToOne
@JoinColumn(name="parentID")
Parent parent;
...
}
如果我在应用程序内部创建一个新子项并将其放入 child Parent 的字段,然后持久化 Parent 对象,为什么 Hibernate 不会自动更新 Child 对象的 parent 字段(为了设置 parentID 列)?
最佳答案
因为 Hibernate 不是一个神奇的工具。它旨在使用您设计和编写的 POJO,它不会修改那些 POJO 的字节码。如果需要,您有责任初始化关联的另一端。
另一个原因是它必须遵守的 JPA 规范如何指定其工作方式。
但没有什么能阻止你拥有一个方法
public void addChild(Child c) {
this.children.add(c);
c.parent = this;
}
关于hibernate - 为什么 Hibernate 不设置 child 对 parent 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36375052/