cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Lepine" <>
Subject Re: creating/saving transient objects to database
Date Thu, 21 Jun 2007 22:32:28 GMT
Thanks for replying. I started to think I may have to do what you were
suggesting below as well.

I'll look (and hope) for other solutions that may be cleaner though.

Thanks again.

On 6/21/07, Fredrik Liden <> wrote:
> If you're calling newObject you'll get a registered object with
> PersistenceState.NEW. so consequently the commit tries to insert it.
> I'm thinking at some point you'll need to manually check if the object
> exists in the database or not based on some criteria. Maybe you can
> create a service class that checks using a query if the Pojo object
> exists in the db. If it does it returns the existing DataObject and if
> not it returns the object using newObject. Then the persistenceState
> will be either NEW or COMMITED and commit will trigger insert and update
> respectively.
> Of course the Cayenne guys probably have some other nifty way to do it.
> Fredrik
> -----Original Message-----
> From: Michael Lepine []
> Sent: Thursday, June 21, 2007 2:46 PM
> To:
> Subject: creating/saving transient objects to database
> I've got a situation where I've got strict POJO objects that I'll need
> to
> copy data from and into my generated Cayenne classes. My issue is that
> when
> I copy the data from the bean to the Cayenne class, I don't know whether
> the
> object exists or not. Thus, I create the Cayenne class instance using
> DataContext.newObject(). Obviously, when I call
> DataContext.commitChanges(),
> an insert is being attempted on the corresponding table even if a record
> already exists in the database.
> Is there a way to create the Cayenne instance so that the persistent
> layer
> will know to check whether the record exists and update it instead of
> always
> attempting an insert?
> Any help and guidance are appreciated.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message