JPA:@PrimaryKeyJoinColumn(…)和@JoinColumn(…,insertable =?,updatable =?)相同?

如果@PrimaryKeyJoinColumn(...)没有可插入和可更新的参数,你可以从JPA规范派生@PrimaryKeyJoinColumn(...)

 @JoinColumn(..., insertable = false, updatable = false) 

要么

@JoinColumn(…,insertable = true,updatable = true)

当用于常规(非inheritance)关联时? 他们应该可以互换吗? 设置的可插入和可更新属性是什么? 它们是否适合任何东西? 请注意,我只是针对两个(似乎)实现的只读属性…

我正在使用EclipseLink和Hibernate进行相当不一致的映射exception……

这是@PrimaryKeyJoinColumn JavaEE 5 + 6 Javadoc:

PrimaryKeyJoinColumn(JavaEE 5)
PrimaryKeyJoinColumn(JavaEE 6)

引用:

…它可以在OneToOne映射中使用,其中引用实体的主键用作引用实体的外键。

是的,两者是等价的。

请注意,在JPA 2.0中,您还可以将@Id添加到@OneToOne映射,并避免完全具有重复的基本id属性。

看到

  • 身份和排序>通过OneToOne和ManyToOne关系的主键和
  • OneToOne>目标外键,主键连接列,级联主键

来自WikiBooks Java Persistence页面