openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fay Wang (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (OPENJPA-782) Support for collections of embeddables and basic types
Date Thu, 18 Dec 2008 19:29:44 GMT

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


Mime
View raw message