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

Reply via email to