RE: Inheritance using two tables

From: Gentry, Michael \(Contractor\) ("Gentry,)
Date: Tue Feb 01 2005 - 10:13:02 EST

  • Next message: Andre Bremer: "Re: Inheritance using two tables"

    Well, he had mentioned two tables: a base table for the superclass and
    separate tables for the concrete subclasses. I suppose that's vertical
    inheritance in EOF-lingo.

    /dev/mrg

    -----Original Message-----
    From: Andrus Adamchik [mailto:andru..bjectstyle.org]
    Sent: Tuesday, February 01, 2005 10:05 AM
    To: cayenne-use..bjectstyle.org
    Subject: RE: Inheritance using two tables

    Ok.. now I am confused what type of inheritance are we talking about...
    Horizontal inheritance, the one that I assumed -
    http://developer.apple.com/documentation/WebObjects/UsingEOModeler/Art/i
    nh_horizontal.gif,
    or vertical inheritance with "flattened" attributes across tables:
    http://developer.apple.com/documentation/WebObjects/UsingEOModeler/Art/i
    nh_vertical.gif

    Andre, which one do you need?

    Andrus

    > Andrus,
    >
    > Would the modeler/etc allow for a table "A" in this case, too? You'd
    > want entity B to be composed of tables A&B, entity C composed of
    tables
    > A&C, etc.
    >
    > Thanks,
    >
    > /dev/mrg
    >
    > -----Original Message-----
    > From: Andrus Adamchik [mailto:andru..bjectstyle.org]
    > Sent: Tuesday, February 01, 2005 9:49 AM
    > To: cayenne-use..bjectstyle.org
    > Subject: Re: Inheritance using two tables
    >
    >
    > No comments on the timing, but why wouldn't a common abstract
    superclass
    > address your requirements? From what I can tell it provides a
    *complete*
    > functional replacement of multi table inheritance (note that in the
    > modeler you can select a superclass of any entity... so two entities
    can
    > have the same custom superclass). E.g.
    >
    > public abstract class A extends CayenneDataObject {
    > public abstract String getX();
    > public abstract void setX(Stirng x);
    >
    > public void doSomething() {
    > ...
    > }
    > }
    >
    > public class B extends A { // mapped to table B
    >
    > }
    >
    > public class C extends A { // mapped to table C
    >
    > }
    >
    > Anything I might be missing here?
    >
    > Andrus
    >
    >
    >
    >
    >> Andrus Adamchik wrote:
    >>
    >>>Hi Andre,
    >>>
    >>>Multiple table inheritance is currently not supported. It should be
    >>> fairly easy to add, but this has to be done... I guess you'll have
    to
    >>> map your tables as independent entities and use a common Java
    > interface
    >>> or better - a common abstract superclass to achieve a similar
    effect.
    >>>
    >>>Andrus
    >>>
    >>>
    >> Andrus,
    >>
    >> Thank you for quick reply.
    >>
    >> I am stuck with our existing design, guess I'll have to wait for the
    >> next cayenne version :)
    >>
    >> Anybody any idea when/if this feature will be added?
    >>
    >> cheers
    >>
    >> Andre
    >>
    >>>>Hi
    >>>>
    >>>>How does one map an associated database schema?
    >>>>Where we have one base table representing the super class and any
    >>>> number
    >>>> of other tables representing the concrete sub classes.
    >>>>
    >>>>I understand the documentation of single table inheritance but can't
    >>>> find any help on the above.
    >>>>
    >>>>Also I can't search the mail archive, am I missing something?
    >>>>
    >>>>cheers
    >>>>
    >>>>as



    This archive was generated by hypermail 2.0.0 : Tue Feb 01 2005 - 10:13:08 EST