EclipseLink/Development/JPA2.0/one-to-one via jointable
Updated EntityManager / Query APIs
In JPA 2.0 the specification states (11.1.23 JoinTable Annotation): The JoinTable annotation is used in the mapping of entity associations. A JoinTable annotation is specified on the owning side of the association. A join table is typically used in the mapping of many-to-many and unidirectional one-to-many associations. It may also be used to map bidirectional many-to-one/one-to-many associations and one-to-one associations (both bidirectional and unidirectional).
Add relation table (JoinTable) support for OneToOneMapping.
OneToOneMapping addressMapping = new OneToOneMapping(); ... addressMapping.setRelationTableMechanism(new RelationTableMechanism()); addressMapping.setRelationTableName("EMP_ADDRESS"); addressMapping.getRelationTableMechanism().addSourceRelationKeyFieldName("EMP_ADDRESS.EMP_ID", "EMPLOYEE.EMP_ID"); addressMapping.getRelationTableMechanism().addTargetRelationKeyFieldName("EMP_ADDRESS.ADDR_ID", "ADDRESS.ADDRESS_ID"); descriptor.addMapping(addressMapping);
In bidirectional case one of the two mappings must be read only. OneToManyMapping with relation table could be paired with either OneToManyMapping or ManyToManyMapping.
No HistoryPolicy support for OneToOneMapping's relation table.