Andrus,
what is the "status" of this merge functionality? Any estimates?
Thanks,
Borut
2007/11/29 Andrus Adamchik <andru..bjectstyle.org>:
> In the nearest future we'll be adding a "merge" method to the DataContext
> that would do exactly what you described here - reattach an already
> persistent and possibly modified object to the context. For now the closest
> analog is "localObject", but it will require some hacking. A reattach method
> may look like this:
>
> void reattach(Persistent object) {
> // force "modified" on the object
> object.setPersistenceState(PersistenceState.MODIFIED);
> context.localObject(object.getObjectId(), object);
> }
>
> This will do the right thing for objects not changed, but WILL NOT do the
> right thing for the newly inserted objects.
>
> Andrus
>
>
>
> On Nov 29, 2007, at 1:33 PM, Detlef Burt wrote:
>
> Hello,
> >
> > after being able to keep my Data after sending my Objects via JMS
> > (Thanks Andrus) I now have a problem when I try to write the Objects back
> > into the Database.
> >
> > After sending the Objects to the Client-Application, the Client changes
> > some data ( Just a timestamp in my Testcase ) and then sends an
> > Update-Request to the Server. Due to the fact, that the Client has no access
> > to the DataContext or the underlying ObjectStore, the changes made to the
> > Object won't be recorded.
> > After the Server receives the Object, it reconnects the Object to the
> > DataContext, thus being able to get a snapshot from the database or even
> > create an UpdateQuery.
> > But I can't go anywhere from here.
> > Executing the UpdateQuery won't have any effect because Cayenne doesn't
> > know what changed.
> >
> > I also tried to get a Snapshot from the DB, convert my DataObject to a
> > DataRow and then create and register the diff of those by myself. But I
> > couldn't find anything like that :/
> >
> > To sum it all up:
> > - Can I tell Cayenne to replace the Database Contents with the data from
> > my Object while retaining the ObjectId ?
> > - Can I tell Cayenne to "scan" an Object for changes and register the
> > differences, so that calling commitChanges will update the Object?
> > - Or is it possible to create a DataRow from a DataObject so I can
> > create and register an ObjectDiff ?
> >
> > NOTE:
> > When updating the Object, I don't know what class is being updated and
> > what properties it has, all I have is my CayennePersistableObject Baseclass,
> > which extends CayenneDataObject.
> >
> > Detlef
> >
> >
> >
>
This archive was generated by hypermail 2.0.0 : Mon Apr 14 2008 - 10:22:23 EDT