Re: Refresh ObjectId for meaningful PK

From: Juergen Saar (juerge..saar.org)
Date: Wed Jul 29 2009 - 09:25:13 EDT

  • Next message: Tobias Schoessler: "sync cayenne cache in two web apps"

    Sorry ... I'm working with 2.0.4

    actually I stopped using setObjectId.

    Now on Commit the following CayenneRuntimeException is thrown;
    Can't extract a master key. Missing key (esd_abteil), master ID
    (<ObjectId:EsSend, TEMP:000002770CF60001>)

    The relation for this is a 1:1 relation and the esd_abteil Property in the
    belonging root-Object (EsSend) has the correct value
    as I can see in the debug-logfile.

    I think the Problem is caused by the ObjectId ...

    2009/7/29 Andrey Razumovsky <razumovsky.andre..mail.com>

    > Manually invoking setObjectId() in the middle of CDO lifecycle isn't a good
    > idea, because data object might have already been registered in context
    > with
    > another ObjectId. What CayenneRuntimeExeptions are you having and what is
    > your version of Cayenne?
    >
    > 2009/7/29 Juergen Saar <juerge..saar.org>
    >
    > > Hi,
    > >
    > > I'm working on an 20 year old project with meaningful primary keys.
    > >
    > > Till now, we used cayenne only for reading but now we are working on the
    > > first 'real' Web-Components that handle Order-Data.
    > >
    > > So I have to create the primary key myself.
    > >
    > > In the Modeller I created ObjAttributes for the PK-Fields and use the
    > > setters to transfer the PK-Values to the Business-Object.
    > >
    > > In most cases this seems to work, only sometimes a CayenneRuntimeExeption
    > > tells me some Problems about temporary ObjectIds. The Data are stored
    > > pretty
    > > correct in the Database Tables.
    > >
    > > In some cases, especially on 1:1 Relations there are Problems with the
    > > Foreign Keys.
    > >
    > > So I try to setup my own ObjectId with the generated Values for the
    > primary
    > > Key and put this into the DataObject by setObjectId().
    > >
    > > This brings the whole BusinessObject in trouble.
    > >
    > > Is there a correct way to solve this problem?
    > > -Juergen-
    > >
    >



    This archive was generated by hypermail 2.0.0 : Wed Jul 29 2009 - 09:25:52 EDT