I'm a bit confused by the mapping defaults for @OneToOne defined in JPA 2.1.
Sections 2.10.1 and 2.10.3.1 (Bidirectional and Unidirectional OneToOne Relationships)
says, "The foreign key column has the same type as the primary key of table B and
there is a unique key constraint on it."
Section 11.1.41 (OneToOne Annotation) says that, by default, optional=true, which
translates into nullable foreign key column(s).
IIUC, the default mapping is not supported by many (all?) databases, because a constraint
violation exception will be thrown if a column has a unique key constraint and there is
more than one null value for that column.
Currently, Hibernate does not create a unique key unless @OneToOne( optional=false ) is
defined. I believe Hibernate is doing the right thing here, but it is not consistent with
the spec.
Is the spec wrong in this case, or am I missing something? Please let me know...
Thanks,
Gail