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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.