Re: Temp ID issue - Exception

From: Gary Jarrel (garyjarre..mail.com)
Date: Thu Sep 20 2007 - 06:11:16 EDT

  • Next message: Michael Gvirtzman: "RE: Delete Object Issue"

    Hi,

    Evidently this is only an 3.0M1 problem, as I've just switched back to
    2.0.3 and the problem disappeared!

    I can't paste the actual code due to NDA reasons of this project,
    however the modified version looks something like this:

    public void createAndSaveNotification() {
            //find the existing mail record in the database
            IMaintenanceRequest req = getDao().findMaintenanceRequestRecord(corId);

            //create a new notification record
            INotification notification = getDao().createAndRegisterNotification();

            notification.setDateSent(KatyaUtil.getCalendarInGmtTimeZone().getTime());
            notification.setType(INotification.TYPE_IM);

            //req.addToNotificationArray(notification);
            notification.setToCorrespondence(req);

            logObjects();

            getDao().commit();
    }

    I use the DAO to find the record for which notification will be
    created. Then I use the DAO to create and register a new instance of
    the notification object. Set some fields on it like date sent and
    type. The try to build a relationship and commit back to the DB.

    the logObjects method logs all the uncommitted objects from the data
    context. When I check the log there are 2 objects being logged, one
    being the maintenance request record in modified state, and one being
    the notification record in the new state.

    And at the commit level I get the exception I wrote about. Didn't
    think there was anything to complicated about this. And as I said
    above I reverted back to 2.0.3 and it works fine, but in 3.0M1 it
    throws an exception.

    Any thoughts?

    Thank you!

    Gary

    On 9/19/07, Tore Halset <halse..vv.ntnu.no> wrote:
    > Hello.
    >
    > Looks like you are using an uncomitted new object in a query. Could
    > you post your relevant java code?
    >
    > - Tore.
    >
    > On Sep 19, 2007, at 12:12 , Gary Jarrel wrote:
    >
    > > Hi Guys!
    > >
    > > Any thoughts on what could be causing this during commit?
    > >
    > > org.apache.cayenne.CayenneRuntimeException: [v.3.0M1 Jul 27 2007
    > > 23:05:47] Can't build a query for temporary id:
    > > <ObjectId:CorrespondenceRecepientNotification, TEMP:0000032DC4F40101>
    > > at
    > > org.apache.cayenne.query.ObjectIdQuery.createReplacementQuery
    > > (ObjectIdQuery.java:120)
    > > at
    > > org.apache.cayenne.query.IndirectQuery.getReplacementQuery
    > > (IndirectQuery.java:75)
    > > at org.apache.cayenne.query.IndirectQuery.route
    > > (IndirectQuery.java:58)
    > > at org.apache.cayenne.access.DataDomainQueryAction.runQuery
    > > (DataDomainQueryAction.java:
    > > <snip>
    > >
    > > I've did some googling and came across similar errors, all which
    > > related to version 1.2 of Cayenne and all appear to have been resolved
    > > based on the Jira issues which I read?
    > >
    > > Thank you!
    > >
    > > Gary
    > >
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu Sep 20 2007 - 06:12:14 EDT