db-jdo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Drew Lethbridge <d...@bund.com.au>
Subject Re: column sharing
Date Fri, 26 Oct 2007 08:33:33 GMT
Yes, I failed to mention that so far it does appear to work in my  
implementation, which is Kodo 4.1.4.  I'm interested in whether it's  
vendor-dependent or whether JDO Spec should dictate the behaviour of  
this case in some way...

Drew

On 26/10/2007, at 1:42 PM, cbeams wrote:

> Drew,
>
> I'd only be speculating if I formed a response to this question, as  
> I've never attempted what you're trying.
>
> Have you actually given a go at this?  What implementation are you  
> using?
>
> - Chris Beams	
>
>
> On Oct 25, 2007, at 7:31 PM, Drew Lethbridge wrote:
>
>> Greetings,
>>
>> I have a question about JDO2.0.  When using an inheritance  
>> strategy of "superclass-table", is it valid for two separate  
>> subclasses which both have an identically-typed field to actually  
>> share a database column, rather than specifying a separate column  
>> for each of the fields?  As far as I can tell, the JDO spec is not  
>> clear on this.  Is it completely JDO-vendor implementation  
>> dependent (i.e. non-portable)?
>>
>> Below is an illustrative example.  B extends A and also C extends  
>> A.  The fields B.f1 and C.f2 are both declared as references to a  
>> persistence type "F" but defined to share the column named  
>> F_JDOID.  Any potential problems with this?
>>
>> Thanks.
>>
>> Drew.
>>
>> <class name="A" table="A">
>>     <!-- abstract superclass -->
>>     <datastore-identity column="JDOID" />
>>     <inheritance>
>>         <discriminator strategy="value-map" column="CLASSIND" />
>>     </inhertance>
>>     <version strategy="version-number" column="JDOVERSION" />
>> </class>
>>
>> <class name="B">
>>     <!-- extends A -->
>>     <inheritance strategy="superclass-table" />
>>         <discriminator value="B" />
>>     </inheritance>
>>     <field name="f1" column="F_JDOID">
>>         <foreign-key deferred="true" />
>>     </field>
>> </class>
>>
>> <class name="C">
>>     <!-- extends A -->
>>     <inheritance strategy="superclass-table">
>>         <discriminator value="C" />
>>     </inheritance>
>>     <field name="f2" column="F_JDOID">
>>         <foreign-key deferred="true" />
>>     </field>
>> </class>
>>
>> <class name="F" table="F">
>>    <datastore-identity column="JDOID" />
>>    <!-- etc... -->
>>
>
>


Mime
View raw message