Re: Persistence and inheritance : a noob question

From: Landry Soules (cayennem..mail.com)
Date: Sat Dec 02 2006 - 16:27:44 EST

  • Next message: Øyvind Harboe: "Delete rules"

    I tried this solution, and actually i find it very cool !
    But one detail still bother me :
    Is there a way i can specify that a property of a subclass is mandatory ?

    Michael Gentry a écrit :
    > This page might help:
    >
    > http://cwiki.apache.org/confluence/display/CAYDOC12/Modeling+Inheritance
    >
    > Also, look at the ObjEntity section in Cayenne Modeler. Specifically
    > the Inheritance and Table/View pulldowns. Also, the Qualifier field,
    > which is how you specify the discriminator so Cayenne can determine
    > which Java class it represents. (The above web page shows an example
    > of such a qualifier.)
    >
    > /dev/mrg
    >
    >
    > On 11/28/06, Landry Soules <cayennem..mail.com> wrote:
    >> Thanks for your answer, Michael.
    >> Actually i thought of having one table for Vip, one for Customer, and
    >> none for Person.
    >> Because Vip and Customer share some properties (first name, last name
    >> etc).
    >> Having 2 tables seems cleaner to me, but if your solution is well
    >> supported by Cayenne, why not ?
    >> Would you please have a small code example to help me understand how to
    >> implement it ?
    >>
    >> Thanks
    >>
    >> Landry Soules
    >>
    >> Michael Gentry a écrit :
    >> > Are you wanting multiple tables or a single table? Cayenne will
    >> > currently do a single table mapped to multiple Java classes pretty
    >> > well. You have to have a discriminator column (an int or a char, etc)
    >> > which Cayenne can use to detect which Java class to create. Such as 1
    >> > = Customer, 2 = VIP, etc.
    >> >
    >> > /dev/mrg
    >> >
    >> >
    >> > On 11/28/06, Landry Soules <cayennem..mail.com> wrote:
    >> >> Hello,
    >> >>
    >> >> I'm a new user of Cayenne, and am facing a design problem. Here it
    >> is :
    >> >> I would like to implement the following :
    >> >> - a Person abstract class (with first name, last name and so on
    >> >> properties), extended by Customer and Vip classes.
    >> >> In my mind, Person wouldn't be persistent, whereas Customer and Vip
    >> >> would, meaning having only customer and vip tables.
    >> >> Does this fit into the FAQ's CompositeVerticalInheritence, or does
    >> exist
    >> >> a simpler alternative, since i must admit i didn't understand how
    >> to use
    >> >> it ?
    >> >>
    >> >> Thanks
    >> >>
    >> >> Landry Soules
    >> >>
    >> >
    >>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Sat Dec 02 2006 - 16:27:33 EST