Re: The right way to populate meaningful keys

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

  • Next message: Eric Lazarus: "Re: The right way to populate meaningful keys"

    Pretty hint ...

    I moved to-dep-pk from 'source' to 'target' of the relation ... it worked

    A little strage because the join-fields were filled in on both sides

    It is a typical optional Information that ist attached by the 1:1 relation
    so to-dep-pk would be right on both sides of the relation.

    Thanx ...
    -Juergen-

    2009/7/30 Michael Gentry <mgentr..asslight.net>

    > 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:01:29 EDT