Skip to main content
Jump to: navigation, search

EclipseLink/Development/JPA2.0/one-to-one via jointable

Updated EntityManager / Query APIs

JPA 2.0 Root | Enhancement Request

Issue Summary

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).

General Solution


Add relation table (JoinTable) support for OneToOneMapping.

OneToOneMapping addressMapping = new OneToOneMapping();
addressMapping.setRelationTableMechanism(new RelationTableMechanism());
addressMapping.getRelationTableMechanism().addSourceRelationKeyFieldName("EMP_ADDRESS.EMP_ID", "EMPLOYEE.EMP_ID");
addressMapping.getRelationTableMechanism().addTargetRelationKeyFieldName("EMP_ADDRESS.ADDR_ID", "ADDRESS.ADDRESS_ID");

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.

Work Required

Implementation Details

Open Issues

Back to the top