Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

< EclipseLink‎ | Development
Revision as of 15:04, 6 July 2009 by Unnamed Poltroon (Talk) (New page: = Updated EntityManager / Query APIs = JPA 2.0 Root | [http://bugs.eclipse.org/282553 Enhancement Request] ==Issue Summary== In JPA 2.0 the specific...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Core

Add relation table (JoinTable) support for OneToOneMapping. That will look exactly like relation table in ManyToManyMapping.

OneToOneMapping addressMapping = new OneToOneMapping();
...
addressMapping.setRelationTableName("EMP_ADDRESS");
addressMapping.addSourceRelationKeyFieldName("EMP_ADDRESS.EMP_ID", "EMPLOYEE.EMP_ID");
addressMapping.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.

Work Required

Implementation Details

Open Issues

Back to the top