问题
Can you derive from the JPA spec, if @PrimaryKeyJoinColumn(...)
, which doesn't have the insertable and updatable parameters, is the same as
@JoinColumn(..., insertable = false, updatable = false)
or
@JoinColumn(..., insertable = true, updatable = true)
when used on regular (non-inheritance) associations? Should they be interchangable? What are the insertable and updatable properties set to? Are they set to anything at all? Note, I'm only targeting the read-only attribute that both (seem to) implement...
I'm getting rather inconsistent mapping exception with EclipseLink and Hibernate...
Here's the @PrimaryKeyJoinColumn
JavaEE 5 + 6 Javadoc:
PrimaryKeyJoinColumn (JavaEE 5)
PrimaryKeyJoinColumn (JavaEE 6)
Quote:
... and it may be used in a OneToOne mapping in which the primary key of the referencing entity is used as a foreign key to the referenced entity.
回答1:
Yes, the two are equivalent.
Note in JPA 2.0 you can also add an @Id
to a @OneToOne
mapping and avoid having the duplicate basic id attribute altogether.
See
- Identity and Sequencing > Primary Keys through OneToOne and ManyToOne Relationships and
- OneToOne > Target Foreign Keys, Primary Key Join Columns, Cascade Primary Keys
from the WikiBooks Java Persistence pages
来源:https://stackoverflow.com/questions/4205628/jpa-is-primarykeyjoincolumn-the-same-as-joincolumn-insertable