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
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to