[
https://issues.apache.org/jira/browse/OPENJPA-782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Fay Wang resolved OPENJPA-782.
------------------------------
Resolution: Fixed
Fix Version/s: 2.0.0
In this iteration, the following are supported:
1) nested embeddables: spec 2.5
2) collections of embeddables and basic types: spec 2.2, 2.6
3) relationships within embeddables: spec 2.5, 10.1.22, 10.1.24, 10.1.25,
10.1.34
4) @CollectionTable annotation and XML (Parser/Serializer): spec 10.1.7
5) @ElementCollection annotation and XML (Parser/Serializer): spec 10.1.11
Incmplete and pending issues:
(1) 2.7.2
(2) 10.1.35 (OrderBy for embeddable)
(3) JIRA-793
(4) processing/serialization for version 1 and version 2 of the
ORM/PersistenceUnit XML Schema.
> Support for collections of embeddables and basic types
> ------------------------------------------------------
>
> Key: OPENJPA-782
> URL: https://issues.apache.org/jira/browse/OPENJPA-782
> Project: OpenJPA
> Issue Type: Sub-task
> Reporter: Fay Wang
> Assignee: Fay Wang
> Fix For: 2.0.0
>
> Attachments: openjpa-782-testcase.patch, openjpa-782.patch
>
>
> Regarding jpa 2.0 embeddable, suppose Entity A contains a collection of
> embeddables.
> The collection of embeddable is stored in a separate table. @CollectionTable
> can be used to specify the table name, etc. If the @CollectionTable is not
> used, a default table name is used (see spec, p 272 ).
> The embeddable may contain the relation to EntityB in the following scenarios:
> (1) If in the embeddable, there is:
> @ManyToOne
> private EnittyB entityB;
>
> then the relation from EntityA to EntityB is OneToMany,
> and the relation from EntityB to EntityA is ManyToOne (Spec 2.5):
> @ManyToOne
> private EntityA entityA;
> (2) If in the embeddable, there is:
> @OneToOne
> private EntityB;
> then the relation from EntityA to EntityB is OneToMany,
> and the relation from EntityB to EntityA is ManyToOne (Spec 2.5):
> @ManyToOne
> private EntityA entityA;
> (3) If in the embeddable, there is:
> @OneToOne(mappedBy = "entityB")
> private EntityB
> The relation from EntityA to EnityB is OneToMany,
> and the relation from EntityB to EntityA is ManyToOne:
> @ManyToOne
> private EntityA entityA;
> The relation to EntityB will be stored in the third table (the
> CollectionTable) so that it can be associated with the embeddable. However,
> we can not use "mappedBy" in the ManyToOne relation in EntityB. How to have
> bi-directional relation between EntityA and EntityB in these situations? Is
> it possible to have a bi-directional relation between these two entities when
> embeddable is involved as described above?
> In scenario (3), an explicit "mappedBy" is specified in the embeddable, so
> that the bi-directional relation between EntityA and EntityB will be stored
> in the EntityB table, but then how can we associate EntityB with the
> embeddable when EntityA is retrieved back as embeddable itself does not have
> identity?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.