cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Zeigler <robert.zeig...@roxanemy.com>
Subject Re: Configuration Class?
Date Mon, 25 Jul 2011 16:09:31 GMT
Transactions start at "commitChanges".  Cayenne's feel is much more like svn to me than hibernate.
 You "check out" objects (fetch them from the db) to your working "directory" (the object
context).  You modify them, delete them, add new ones, etc.  Then a call to "commitChanges"
sends everything back to the db in a single transaction, very much analogous to svn commit.
 And rollbackChanges is very much analogous to svn -R revert .

Robert

On Jul 25, 2011, at 7/2511:01 AM , Christian Grobmeier wrote:

>> Since ObjectContext (server or ROP client) is a "disconnected" object in Cayenne
transactions are something different compared to say Hibernate (that's my guess anyways, I
don't know much about Hibernate). Cayenne server transactions are a "bridge" to JDBC transactions
(there's not Cayenne specific transactional behavior, other than locking a JDBC connection
for the operation duration, and allowing users to delineate a custom JDBC tx scope).
> 
> Very interesting for me, as I write about transaction for the article
> at the moment.
> 
> You wrote, ObjectContext is some kind of a "disconnected" object. If I
> create two new objects in the ObjectContext, when does the transaction
> start exactly? Is it when I call "registerNew" on the first object or
> is it when I commit my changes (it then would create a transaction,
> commit both new objects, close transaction)?
> 
>> 
>> Since there's no JDBC on the ROP client, there are no Cayenne transaction there.
Potentially we can extend this abstraction to the client, but it was thought originally that
this will break a simple request/response webservice'y feel of ROP.
> 
> Makes perfect sense
> Cheers
> 
> 
>> 
>> Andrus
>> 
>> 
>> On Jul 25, 2011, at 6:18 PM, Christian Grobmeier wrote:
>> 
>>>>> I was just surprise that getDataDomain() is not in CayenneRuntime. It
>>>>> seemed to me that would be the logical place. I can see getChannel and
>>>>> getContext is in CayenneRuntime too. So, why not getDataDomain?
>>>> 
>>>> The answer is ROP. DataDomain is a "server" configuration object, and is
not available in the "client" (ROP) configuration.
>>> 
>>> Ah understood
>>> 
>>> Does that mean a "ROP client" is not meant to work with transactions,
>>> only the "ROP server" is? (not knowing to much about ROP at the
>>> moment)
>>> 
>>> Cheers
>>> Christian
>>> 
>>>> 
>>>> Andrus
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> http://www.grobmeier.de
>>> 
>> 
>> 
> 
> 
> 
> -- 
> http://www.grobmeier.de


Mime
View raw message