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 <[email protected]> > > (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 <[email protected]> wrote: > > > From: Michael Gentry <[email protected]> > > Subject: Re: The right way to populate meaningful keys > > To: [email protected] > > 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<[email protected]> > > 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 <[email protected]> > > > > > >> 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<[email protected]> > > 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- > > >> > > > >> > > > > > > > > >
