我现在有其中父实体知道它的孩子,像这样的关系:JPA:将JoinColumn更改为mappedBy时会发生什么?
@Entity
public class Parent{
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn
private Set<Child> children = new HashSet<>();
}
@Entity
public class Child{
// no link to parent
}
现在我想让它像这样的双向关系:
@Entity
public class Parent{
@OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")
private Set<Child> children = new HashSet<>();
}
@Entity
public class Child{
@ManyToOne(fetch = FetchType.LAZY)
private Parent parent;
}
的基础数据库是一个OracleDB的。
上述变化时,我现有的数据会发生什么变化?如果可能的话,我们不想搞乱现有的数据。
所以通过移除@JoinColumn将我的FK(我想这是隐含存储在儿童)被删除或在的mappedBy-FK重用? – sotix
除非您删除它,否则没有任何内容被“移除”。留下'@ JoinColumn'告诉它使用FK(你已经有了)。 –