为什么单向和双向一对一映射需要将外键放在不同的表中?

时间:2018-10-03 04:04:15

标签: hibernate jpa

在单向一对一映射中,必须在拥有表中显示外键。因此,例如,如果有一个Employee表和一个EmployeeDetails表,则Employee表需要有一个名为employee_details_id的外键。但是,如果我们想将映射更改为双向,则外键需要出现在EmployeeDetails表中,即它需要有一个名为EmployeeId的列。我是根据http://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#associations-one-to-one

休眠文档中给出的示例推论得出的

(因此,在上面链接的docs中的一对一示例中,当映射为单向时,phone表具有details_id列,但是当映射为双向时,phone_details表具有phone_id)。

谁能解释为什么会这样?我的理解是,映射仅是为了简化编程,因此双向映射仅允许从两个类进行导航,因此实际上不需要根据映射来修改基础数据库。但是上面链接中的示例代码与此矛盾。

有人可以澄清吗?

0 个答案:

没有答案