考虑班级家长:
{
...
@OneToMany(cascade=CascadeType.ALL,mappedBy = "parent")
Set<Child> children;
...
}
和班级孩子:
{
...
@ManyToOne
@JoinColumn(name="parentID")
Parent parent;
...
}
如果我在应用程序内部创建一个新子项并将其放在Parent的 children 字段中,然后保留Parent对象,为什么Hibernate不会自动更新父字段(在为了设置Child对象的 parentID 列?
答案 0 :(得分:2)
因为Hibernate不是一个神奇的工具。它旨在使用您设计和编写的POJO,并且它不会修改这些POJO的字节代码。如果需要,您有责任初始化协会的另一方。
另一个原因是,这就是它必须遵守的JPA规范如何规定其工作原理。
但没有什么能阻止你使用方法
public void addChild(Child c) {
this.children.add(c);
c.parent = this;
}