我在我的工作中创建了一些遗留代码,其中显示了以下一些内容:
为了简化,想象一个One类和一个Many类。 在一个课程中我得到了:
@OneToMany(mappedBy = "toOne")
private List<Many> manies;
但在许多类中,字段toOne定义为:
@JoinColumn(name = "unrelated", referencedColumnName = "id")
UnrelatedEntity toOne;
唯一合理的解释是,toOne字段既有与无关的关系,也有与多数有关的FK。但是,使用mappedBy可以使用@OneToMany而无需使用本地或远程@JoinColumn吗?我没有看到任何使用这种简化的例子。它是否自动使用One。@ Id进行连接?
答案 0 :(得分:2)
“mappedBy
”仅将关系的两面联系起来。如果省略JoinColumn
,则它将使用连接表来管理关系。如果您使用JoinColumn
,则它会通过“多方”中的FK管理关系。非常简单。它将使用FK中“1面”中有多少@Id
个字段。