Thanks Armin,

I'm starting to get a much better understanding re 
persisting abstract classes.  I have been able to 
build some abstract and non-abstract test classes 
that function correctly.

marcus


> [EMAIL PROTECTED] wrote:
> 
> > Hi Armin,
> > 
> > yes - I tried defining an extent and the appropriate 
> > class-descriptor's - I also experimented with 
> > "super".  I assume that I am correct in assuming 
> > that it "is" possible to build such a structure with 
> > an abstract class?
> >
> 
> yep, I wrote a test case (using "extent" and different tables, as 
> described on my last post) on my local machine and it work without 
> problems (store/delete graph of objects).
> Pay attention not to mix different mapping strategy, e.g. use "extent" 
> and "super" for the same classes, this could cause side-effects.
> 
> It should also be possible store the whole graph in one table using 
> "ojbConcreteClass" feature.
> 
> regards,
> Armin
> 
> > regards,
> > 
> > Marcus
> > 
> > 
> > 
> > 
> >>Hi Marcus,
> >>
> >>did you try to declare class-descriptor's for B and C (including all 
> >>fields and references) and define an extent for class A:
> >>
> >><class-descriptor class="A">
> >>   <extent-class class-ref="B" />
> >>   <extent-class class-ref="C" />
> >></class-descriptor>
> >>
> >>regards,
> >>Armin
> >>
> >>Marcus Young wrote:
> >>
> >>
> >>>Hi,
> >>>
> >>>I have just been working an issue related to mapping abstract classes.  
> >>>I've read quite a lot about it but I'm still unclear.  The structure I 
> >>>have is as follows:
> >>>
> >>>Abstract Class A which can hold a collection of  'A' objects.
> >>>Classes B and C which extend A
> >>>Each class is mapped to a separate table.
> >>>
> >>>I am  hoping to be able to retreive records in such a way as to 'build' 
> >>>an 'A' class object including the objects collection which may include 
> >>>objects of class B and C.   So far I have been working with 'super' and 
> >>>'extents' - but to be honest I'm not really sure how to get it working.  
> >>>Most commonly I'm getting exceptions of "InstantiationException". -  
> >>>this appears to be related to the abstract 'A' class?  I can resolve 
> >>>this particular exception by using a concrete class, however I 
> >>>particularly wanted to use an abstract class.  Any assistance would be 
> >>>greatly appreciated.
> >>>
> >>>I end up with something like this:
> >>>
> >>>public abstract class A extends TransferObject
> >>>{     protected Long _id;
> >>>}
> >>>
> >>>public class B extends A
> >>>{
> >>>   private String _name;
> >>>   private String _description;
> >>>*}
> >>>
> >>>*public class C extends A
> >>>{
> >>>   private String _name;
> >>>   private String _description;
> >>>*}
> >>>
> >>>*   <class-descriptor
> >>>     class="com.eclipsej.permission.A" table="A">
> >>>        <field-descriptor
> >>>           name="_id"
> >>>           column="ID"
> >>>           jdbc-type="BIGINT"
> >>>           primarykey="true"
> >>>           autoincrement="true"
> >>>        />
> >>>        <!-- extent-class class-ref="com.eclipsej.user.B" / -->
> >>>   </class-descriptor>  
> >>><!-- Defnitions for com.eclipsej.user.B -->
> >>>  <class-descriptor class="com.eclipsej.user.B" table="roles">
> >>>     <field-descriptor name="_id" column="ID" jdbc-type="BIGINT" 
> >>>primarykey="true" autoincrement="true"/>
> >>>     <field-descriptor name="_name" column="NAME" jdbc-type="VARCHAR"/>
> >>>     <field-descriptor name="_description" column="DESCRIPTION" 
> >>>jdbc-type="VARCHAR"/>         <reference-descriptor name="super" 
> >>>class-ref="com.eclipsej.permission.A"
> >>>        auto-retreive="true" auto-update="true" auto-delete="true">
> >>>        <foreignkey field-ref="_id"/>
> >>>     </reference-descriptor>    </class-descriptor>*
> >>>*
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> > 
> > 
> > Unix Systems Administrator
> > 
> > +61 3 9873 0155
> > +61 3 9720 7467 (fax)
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to