I think this should work in Jpox too. -- BlackBerry® from Mobistar ---
-----Original Message----- From: Drew Lethbridge <[EMAIL PROTECTED]> Date: Fri, 26 Oct 2007 18:33:33 To:jdo-user@db.apache.org Subject: Re: column sharing 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... --> >> > >