You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-user@db.apache.org by Gabriel Bauman <ga...@bravenet.com> on 2003/03/01 22:40:57 UTC
Re: Mapping fields to subclasses in XML schema
I don't suppose anyone can enlighten me on the below message? I didn't
hear from anyone. Sorry for the spam, I won't ask again. ;)
Gabe
Gabriel Bauman wrote:
> Hi there. I understand that classes and their subclasses are mapped onto
> a single table under Torque. What I don't understand is how to specify
> that a field should only be retrieved in a subclass.
>
> =====
> public class SuperClass
> {
> public int FOO;
> }
>
> public class SubClass extends SuperClass
> {
> public int BAR;
> }
> =====
>
> <table name="superclass" javaName="SuperClass">
> <column name="FOO" type="int" />
> <column name="BAR" type="int" />
> <column name="inheritance" inheritance="single" type="CHAR">
> <inheritance
> class="SubClass"
> extends="SuperClass"
> key="A"
> />
> </column>
> </table>
>
> =====
> I want to be sure that field BAR does not exist in instances of
> SuperClass, given the fact that they're both mapped on the same table.
> How should my XML schema look in this situation? I must be missing
> something simple here.
>
> Thanks in advance...
>
> Gabe
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>
Re: Mapping fields to subclasses in XML schema
Posted by Gabriel Bauman <ga...@bravenet.com>.
Hmm...
> Since you want BAR in SubClass but not in SuperClass, define your schema
> as below.
>
> <table name="superclass" javaName="SuperClass">
> <column name="FOO" type="INTEGER" inheritance="single">
> <inheritance key="SubClass" class="SubClass" extends="SuperClass" />
> </column>
> </table>
>
> <table name="subclass" javaName="SubClass">
> <column name="BAR" type="INTEGER" />
> </table>
See, this was what I would have thought, but since Torque's
documentation says it stores superclasses and subclasses in the same
table, I don't think what you're saying will actually work. The Torque
Inheritance Guide (http://db.apache.org/torque/inheritance-guide.html)
does not mention 'subclass' tables.
Can anyone else who uses inheritance in Torque please settle this? Is
the above mthod actually correct?
Gabe
Re: Mapping fields to subclasses in XML schema
Posted by Eric Emminger <er...@ericemminger.com>.
I'll take a stab at this! :)
>>> I want to be sure that field BAR does not exist in instances of
>>> SuperClass, given the fact that they're both mapped on the same
>>> table. How should my XML schema look in this situation? I must be
>>> missing something simple here.
Since you want BAR in SubClass but not in SuperClass, define your schema
as below.
<table name="superclass" javaName="SuperClass">
<column name="FOO" type="INTEGER" inheritance="single">
<inheritance key="SubClass" class="SubClass" extends="SuperClass" />
</column>
</table>
<table name="subclass" javaName="SubClass">
<column name="BAR" type="INTEGER" />
</table>
So you know, all I did was generate the OM and look at the Java files.
Everything looks correct, but that's all I did, so I may have missed
something.
Please, let me know whether or not this works for you.
Eric
Re: Mapping fields to subclasses in XML schema
Posted by Travis McCauley <tw...@virginia.edu>.
I asked a similar question last Wednesday and also got no replies.
I've also seen similar questions unanswered in the archives. I don't
think it's possible to map this in the schema. If it was, either
someone would say or it would be in the tutorial.
I set up a simple interface to maintain the subclass-to-column
relationships. If a subclass tries to access an inappropriate field I
just throw an exception. I also had to override the copy() method to
allow casting back to the subclass.
Please someone let us know if there is an easier way.
Sincerely,
Travis McCauley
Snowy Virginia
>I don't suppose anyone can enlighten me on the below message? I
>didn't hear from anyone. Sorry for the spam, I won't ask again. ;)
>
>Gabe
>
>Gabriel Bauman wrote:
>>Hi there. I understand that classes and their subclasses are mapped
>>onto a single table under Torque. What I don't understand is how to
>>specify that a field should only be retrieved in a subclass.
>>
>>=====
>>public class SuperClass
>>{
>> public int FOO;
>>}
>>
>>public class SubClass extends SuperClass
>>{
>> public int BAR;
>>}
>>=====
>>
>><table name="superclass" javaName="SuperClass">
>> <column name="FOO" type="int" />
>> <column name="BAR" type="int" />
>> <column name="inheritance" inheritance="single" type="CHAR">
>> <inheritance
>> class="SubClass"
>> extends="SuperClass"
>> key="A"
>> />
>> </column>
>></table>
>>
>>=====
>>I want to be sure that field BAR does not exist in instances of
>>SuperClass, given the fact that they're both mapped on the same
>>table. How should my XML schema look in this situation? I must be
>>missing something simple here.
>>
>>Thanks in advance...
>>
>>Gabe
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: torque-user-help@db.apache.org
>>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>For additional commands, e-mail: torque-user-help@db.apache.org