Re: The right way to populate meaningful keys

From: Juergen Saar (juerge..saar.org)
Date: Thu Jul 30 2009 - 12:10:58 EDT

  • Next message: Michael Gentry: "Re: The right way to populate meaningful keys"

    It is a very old Project (started 1987) and cayenne is running on top of it.

    All newer Data-Organization is done with technical PK,
    but to change this old Data-Organization too much changes
    in the old 4GL-Software have to be done.

    And you know: Never change a ...

    2009/7/30 Eric Lazarus <ericllazaru..ahoo.com>

    >
    > (Reminder: Avoid meaningful keys when you have the choice, like anytime you
    > are designing the database from scratch.
    >
    > Who wants to write the wikipedia article on the meaningful pointer
    > problem...?)
    >
    > Eric
    > +1 (917) 589-6579
    >
    >
    > --- On Thu, 7/30/09, Michael Gentry <mgentr..asslight.net> wrote:
    >
    > > From: Michael Gentry <mgentr..asslight.net>
    > > Subject: Re: The right way to populate meaningful keys
    > > To: use..ayenne.apache.org
    > > Date: Thursday, July 30, 2009, 11:01 AM
    > > Hi Juergen,
    > >
    > > I suspect that you need to assign the key on the other side
    > > of your
    > > 1:1 relationship, too. Another thing you could try
    > > doing is using the
    > > To Dep PK checkbox in the DbEntity Relationship panel to
    > > see if
    > > Cayenne will auto-copy your meaningful PK for you.
    > >
    > > http://cayenne.apache.org/doc/to-dep-pk-checkbox.html
    > >
    > > I'm not sure if the To Dep PK will work that way, but it is
    > > worth a
    > > try. If you assign all the keys, though, it should
    > > work.
    > >
    > >
    > > On Thu, Jul 30, 2009 at 10:53 AM, Juergen Saar<juerge..saar.org>
    > > wrote:
    > > > This was my way ...
    > > > But I ran in deep trouble with the ObjectId ... this
    > > seems not to be
    > > > sycronized
    > > >
    > > > My actual CayenneRuntimeException:
    > > > Can't extract a master key. Missing key (esd_abteil),
    > > master ID
    > > > (<ObjectId:EsSend, TEMP:0000021E6A770001>)
    > > >
    > > > It belongs to a 1:1 Relation and the PK-Values in
    > > source and target are
    > > > correctly set.
    > > > The Commit is interrupted and the Relation-Data are
    > > not inserted to DB.
    > > >
    > > >
    > > > In nearly all cases ... even when all data is inserted
    > > in DB the following
    > > > CayenneRuntimException is thrown:
    > > > Temporary ID hasn't been replaced on
    > > commit:{<ObjectId:EsSend,
    > > > TEMP:0000022273C50001>; new; ...}
    > > >
    > > > Any idea?
    > > > -Juergen-
    > > >
    > > > PS: I'm using the Version 2.0.4
    > > >
    > > >
    > > > 2009/7/30 Michael Gentry <mgentr..asslight.net>
    > > >
    > > >> Cayenne, by default, doesn't map keys from the
    > > DbEntity (database
    > > >> definition) to the ObjEntity (Java definition),
    > > but you can go into
    > > >> the ObjEntity and add them and it should be fine.
    > > After you do that,
    > > >> just call the set/get methods for the keys to
    > > set/get them. If you
    > > >> set a key on a new object before you
    > > commitChanges(), Cayenne will use
    > > >> your key instead of trying to generate one.
    > > >>
    > > >> mrg
    > > >>
    > > >>
    > > >> On Thu, Jul 30, 2009 at 1:24 AM, Juergen
    > > Saar<juerge..saar.org>
    > > wrote:
    > > >> > Hi all,
    > > >> >
    > > >> > I'm using cayenne within an old 4GL-Project
    > > with meaningful Primary Keys.
    > > >> >
    > > >> > Is there a 'best practice' to get this keys
    > > into the DataObject-Instance?
    > > >> >
    > > >> > Actually I've various trouble with this ...
    > > >> >
    > > >> >
    > > >> > Any hint or code-sniplet would be helpful
    > > ...
    > > >> > -Juergen-
    > > >> >
    > > >>
    > > >
    > >
    >
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu Jul 30 2009 - 12:11:33 EDT