@JoinColumn可以引用之前定义的字段,或者其他方式,这里发生了什么?

时间:2016-08-29 18:42:53

标签: java hibernate jpa

我在我的班级Thing中获得了带有Id列和OneToOne连接的代码。

@Id
@Column(name = "id")
private Long id;

@OneToOne
@JoinColumn(name = "id", referencedColumnName = "id")
private ThingExtension thingExtension;

这是否像以下一样工作?

   Thing                     ThingExtension 
-------------------          --------------
  id (PK,FK) ------------->  id
-----------------            --------------

或者它是创建两次id字段还是什么?

1 个答案:

答案 0 :(得分:2)

在这种情况下,JPA提供程序只创建一列id

另一种方法:

您可以使用@PrimaryKeyJoinColumn注释。删除@JoinColumn并添加@PrimaryKeyJoinColumn(不带参数)。

来自JPA参考:

  

PrimaryKeyJoinColumn注释指定了   主键列将用作外键。