[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
AW: [eclipselink-users] Question about Embeddable Classes
|
Thanks Guy,
this really helped a lot !!!
Bye,
Daniel
> -----Ursprüngliche Nachricht-----
> Von: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-
> bounces@xxxxxxxxxxx] Im Auftrag von Guy Pelletier
> Gesendet: Dienstag, 27. Januar 2009 14:49
> An: EclipseLink User Discussions
> Betreff: Re: [eclipselink-users] Question about Embeddable Classes
>
> Daniel,
>
> N levels of embeddable can be supported.
>
> Yes, your recursive model is causing the stack overflow, you can't do
> that.
>
> Collection's of embeddable will soon be supported through the use of
> ElementCollection from JPA2. In the mean time yes, you may use a
> descriptor
> customizer to map this manually. See @Customizer for more details. Your
> customizer class must implement the
> org.eclipse.persistence.config.DescriptorCustomizer interface.
>
> Cheers,
> Guy
>
> ----- Original Message -----
> From: <Daniel.Stucky@xxxxxxxxxxx>
> To: <eclipselink-users@xxxxxxxxxxx>
> Sent: Tuesday, January 27, 2009 8:24 AM
> Subject: [eclipselink-users] Question about Embeddable Classes
>
>
> Hi,
>
> the JPA 1.0 specification says about embeddable classes
> - "Support for only one level of embedding is required by this
> specification."
> - "Support for collections of embedded objects and for the polymorphism
> and inheritance of embeddable classes will be required in
> a future release of this specification."
>
> I did a test with the following classes that worked fine:
>
> @Entity
> public class MyRecordImpl{
>
> @Id
> @Column(name = "ID")
> private String _id;
>
> @Embedded
> private MyAttributeImpl _attribute;
> }
>
> @Embeddable
> public class MyAttributeImpl{
>
> @Column(name = "ATT_NAME")
> private String _name;
>
> @Column(name = "ATT_VALUE")
> private String _value;
>
> @Embedded
> @Column(name = "ANNOTATION")
> private MyAnnotationImpl _annaotation;
> }
>
> @Embeddable
> public class MyAnnotationImpl{
>
> @Column(name = "ANON_NAME")
> private String _name;
>
> @Column(name = "ANON_VALUE")
> private String _value;
> }
>
> Does eclipseLink support more than one level of embedding or did this
> just function by accident ?
> How many levels are supported ?
>
>
> Would it be possible to recursively embed objects, like
>
> @Entity
> public class MyRecordImpl{
>
> @Id
> @Column(name = "ID")
> private String _id;
>
> @Embedded
> private MyAttributeImpl _attribute;
> }
>
> @Embeddable
> public class MyAttributeImpl{
>
> @Column(name = "ATT_NAME")
> private String _name;
>
> @Column(name = "ATT_VALUE")
> private String _value;
>
> @Embedded
> @Column(name = "REF_ATTRIBUTE")
> private MyAttributeImpl _attribute;
> }
>
> When I try this I get a java.lang.StackOverflowError, presumably
> because
> of the recursion.
>
>
> Also I've read that eclipseLink supports collections of embeddable and
> that it is set through using a DescriptorCustomizer and the
> AggregateCollectionMapping. Are there any examples in the wiki ? I
> found
> some documentation that I was unable to understand.
> I guess something like private List<MyAttributeImpl> _attributes; as a
> member of MyAttributeImpl would still not be supported.
>
>
> Bye,
> Daniel
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users