no estimates... still "nearest future" ;-)
On Apr 14, 2008, at 4:52 PM, Borut Bolčina wrote:
> 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:25:15 EDT