Re: How to create Meaningful Primary Keys?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Feb 02 2009 - 08:30:59 EST

  • Next message: Eric Lazarus: "Re: How to create Meaningful Primary Keys? JUST SAY NO TO MEANINGFUL POINTERS!"

    And to add to that, it is perfectly valid to manually create an
    ObjAttribute in the Modeler for plate_num to make it an object
    property, even though it's a PK. Cayenne doesn't do it by default, but
    the user can still map it if there is a need.

    In fact the upcoming 3.0M6 will even have this as a reverse-
    engineering option:

    https://issues.apache.org/cayenne/browse/CAY-1174

    Andrus

    On Feb 2, 2009, at 3:21 PM, Pierre Lavignotte wrote:

    > Here is what I use when I want to get Recomaster entity with primary
    > key =
    > id :
    >
    > Recomaster recomaster = (Recomaster)
    > DataObjectUtils.objectForPK(context, Recomaster.class, id);
    >
    > And in the Recomaster class, I also have a method that gives me the
    > primary
    > key :
    >
    > public Integer getId() {
    > return DataObjectUtils.intPKForObject(this);
    > }
    >
    > There are similar methods for when primary key is not an integer
    > value.
    >
    > Cheers
    >
    > Cordialement,
    > Pierre Lavignotte
    > Ingénieur Conception & Développement
    > http://pierre.lavignotte.googlepages.com
    >
    >
    > On Mon, Feb 2, 2009 at 2:14 PM, Νίκος Παράσχου
    > <niparas..mail.com> wrote:
    >
    >> First of all thank you for your replies.
    >>
    >> I have the following table:
    >>
    >> Vehicle (
    >> plate_num CHAR(10) NOT NULL,
    >> mixed_weight DOUBLE PRECISION NOT NULL,
    >> type CHAR(30) NOT NULL,
    >> manufacturer CHAR(20),
    >> PRIMARY KEY (plate_num)
    >> )
    >>
    >> In Cayenne Modeller I have the dbEntity "vehicle" with all the above
    >> attributes (plate_num is check as PK). There is also the objEntity
    >> "Vehicle" with all the above attributes except the PK (plate_num).
    >>
    >> I want to select the type of the vehicle with plate_num = "AHZ-4141".
    >>
    >> Could you please post some code samples? I have tried so many things
    >> (with DataObjectUtils too) but still no success.
    >>
    >> Thank you,
    >> Nikos
    >>
    >> Στις 02-02-2009, ημέρα Δευ, και ώρα 12:49 +0100,
    >> ο/η Pierre Lavignotte
    >> έγραψε:
    >>> Hi Nikos,
    >>>
    >>> If you need PK for all your tables, then maybe you need to
    >>> generate them.
    >>> But if you only need to use them for a couple tables then you
    >>> should look
    >> at
    >>> DataObjectUtils class.
    >>>
    >>>
    >>> Cheers,
    >>> Pierre
    >>>
    >>> Cordialement,
    >>> Pierre Lavignotte
    >>> Ingénieur Conception & Développement
    >>> http://pierre.lavignotte.googlepages.com
    >>>
    >>>
    >>> On Mon, Feb 2, 2009 at 12:35 PM, Νίκος Παράσχου
    >>> <niparas..mail.com>
    >> wrote:
    >>>
    >>>> Hello,
    >>>>
    >>>> It is the first time I am using cayenne and I have some questions
    >>>> regarding the primary keys.
    >>>>
    >>>> What I want to do is select some rows of a table where the PK has a
    >>>> specific value. The problem is I can't access the PK. I can specify
    >>>> qualifiers only with the non-PK columns. The PKs I am using have
    >>>> some
    >>>> meaning (they are not just numbers) so it is very important to be
    >>>> able
    >>>> to use them.
    >>>>
    >>>> How can I add the PK to the fields of the Object Entities?
    >>>>
    >>>> In this page
    >> http://cayenne.apache.org/doc20/primary-key-generation.html
    >>>> the answer is to create a Meaningful Primary Key.
    >>>>
    >>>> How can I create Meaningful Primary Keys?
    >>>>
    >>>> Are there any security issues when using Meaningful Primary Keys?
    >>>>
    >>>> Thank you for your time,
    >>>> Nikos
    >>>>
    >>>>
    >>
    >>



    This archive was generated by hypermail 2.0.0 : Mon Feb 02 2009 - 08:31:35 EST