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?

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]

Reply via email to